Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 22:40:26
visual c++中程序调试之断点跟踪

visual c++中程序调试之断点跟踪

断点跟踪

在调试程序时,经常在程序可能出现错误的地方设置一个断点。在调试状态下运行程序时,当程序执行到断点处,会产生中断,使用户有机会查看此时程序的运行状态。

在Visual C++中设置断点非常简单,在代码编辑器中选择欲设置断点的代码行,按F9键即可设置一个断点。如果用户想要设置复杂的断点,可以按Ctrl+B组合键打开断点窗口。断点窗口包含了3个选项卡,其中每个选项卡包含了一种设置断点的方法。断点窗口如图1所示。



图1 断点窗口

断点窗口中列出了当前工程中的所有断点,用户可以单击“Remove”或“Remove All”按钮移除某个断点或所有断点。

1.设置条件断点

在设计断点时,可能需要设置一个条件断点。所谓条件断点,是在变量或表达式符合断点条件时才产生中断,进入调试阶段。示例如下。

(1)编写代码如下。

int sum = 0;

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

{

sum+= i;

}

(2)按Ctrl+B组合键打开断点窗口,在“sum+= i”行处设置一个段点,如图2所示。



图2 设置条件断点

(3)单击“Conditon”按钮,打开断点条件窗口,在该窗口中设置断点条件,如图3所示。



图3 断点条件窗口

(4)运行程序,执行代码,当变量i等于2时将产生中断,如图4所示。



图4 系统中断

2.设置数据断点

数据断点只能在Breakpoints对话框中设置。选择“Data”选项卡,就显示了设置数据断点的对话框。在编辑框中输入一个表达式,当这个表达式的值发生变化时,数据断点就到达。一般情况下,这个表达式应该由运算符和全局变量构成。示例如下:

(1)定义一个全局变量,其代码如下:

void CDebugDlg::OnOK()

{

int sum = 0;

for ( i = 0;i <10;i++)//i为一个整型全局变量

{

sum+= i;

}

}

(2)按Ctrl+B组合键打开断点窗口,选择“Data”选项卡,在编辑框中输入全局变量i,如图5所示。



图5 设置数据断点

(3)单击“OK”按钮保存设置。运行程序,当程序试图改变变量i的值时将产生中断,进入调试阶段,如图6所示。



图6 产生中断

(4)单击“确定”按钮,程序将停留在“改变i值”的代码处,如图7所示。



图7 代码编辑器

3.设置消息断点

Visual C++也支持对Windows消息进行截获,有两种方式进行截获:窗口消息处理函数和特定消息中断。在“Breakpoints”对话框中选择“Messages”选项卡,就可以设置消息断点。如果采用窗口消息处理方式,那么每次消息被这个函数处理,断点就到达;如果采用特定消息中断方式,则每次指定的消息到达,程序就中断。


If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759