Visual 2012 程序调试方法

一、打开visual操作页面,需要用到的图标:

       Visual 2012 程序调试方法

二、不同图标的用法:

Visual 2012 程序调试方法:开始调试不执行,一般编译成功后,可以查看运行结果;

Visual 2012 程序调试方法: 启动调试,一般编译成功后,点击会出现闪现,看不出运行结果。在调试时可以设置完断电后运行使用。

Visual 2012 程序调试方法:监视,通常软件会自动弹出监视框,如下(系统未自动弹出下框时,单击即可弹出):

                 Visual 2012 程序调试方法

Visual 2012 程序调试方法:调试的中断、停止调试、重新启动,都是用于结束调试或者重新开始调试时使用的。

Visual 2012 程序调试方法:显示下一条语句。

Visual 2012 程序调试方法:逐语句进行调试,即从程序的第一条语句开始,每个语句都检查一遍。

Visual 2012 程序调试方法:逐过程进行调试,即在循环体中按照循环次数做大体检查,

Visual 2012 程序调试方法:跳出,即跳出逐过程或者逐语句的检查。

三、调试的使用方式:

       1、设置断点:在系统左侧页面边框内,用鼠标在你想要查询的语句前单击,出现红色圆点,即为断点。

                      Visual 2012 程序调试方法

        2、设置好断点后,点击启动调试Visual 2012 程序调试方法,与调试相关的图标就被自动点亮

            由Visual 2012 程序调试方法

            变为Visual 2012 程序调试方法

         3、通过逐语句Visual 2012 程序调试方法、逐过程Visual 2012 程序调试方法、跳出Visual 2012 程序调试方法、来完成程序的调试;

         4、使用调试时,可以通过页面左侧黄色箭头观察调试进行到哪一步;

                                   可以通过观察监视框内变量变化,检测出错步骤。

四、举个例子说明:

   对下列折半查找程序进行调试,使其输出正确的结果。

#include <stdio.h>

int BinSearch(int *arr,int len,int key)

{

int low = 0;

int high = len-1;

int mid;

while(low <= high)

{

mid = (low+high)>>1;//mid = (low+high)/2;

if(arr[mid] == key)

{

return mid;

}

else if(arr[mid] > key)

{

high = mid;

}

else

{

low = mid;

}

}

 

return -1;

}

 

int main()

{

int arr[10] = {1,3,5,7,9,10,11,12,13,15};

for(int i=0;i<10;i++)

{

printf("%d\n",BinSearch(arr,10,arr[i]));

}

return 0;

}

结果分析:

输出结果应该是:0,1,2,3,4,5,6,7,8,9

但是程序运行结果则是:

Visual 2012 程序调试方法

 

由此可见程序运行出现问题,故需要对程序进行相应的调试,使其输出正确的结果。

由题可进行分析折半查找:

给定的数:1  3  5  7  9  10  11  12  13  15

   标:0   1   2   3   4   5    6     7    8    9

  1       L               M                        H

  2       L    m      H  

  3      (lmh)                       

调试时发现监视输出的各值分别为:

给定的数:1  3  5  7  9  10  11  12  13  15

   标:0   1   2   3   4   5    6     7    8    9

  1       L               M                        H

  2       L       m       H  

  3       L   m   H

  4     (m)L  h

进而分析,可知需调整m位置;调整后,程序为:

#include <stdio.h>

int BinSearch(int *arr,int len,int key)

{

int low = 0;

int high = len-1;

int mid;

while(low <= high)

{

mid = (low+high)>>1;//mid = (low+high)/2;

if(arr[mid] == key)

{

return mid;

}

else if(arr[mid] > key)

{

high = mid-1;

}

else

{

low = mid+1;

}

}

 

return -1;

}

 

int main()

{

int arr[10] = {1,3,5,7,9,10,11,12,13,15};

for(int i=0;i<10;i++)

{

printf("%d\n",BinSearch(arr,10,arr[i]));

}

return 0;

}

最后输出结果为:

 Visual 2012 程序调试方法

再输入边缘数进行检测:Visual 2012 程序调试方法

 

相关文章: