技术开发 频道

Visual Studio调试之断点技巧

  3 右键点击刚才设置好的断点,在菜单里面选择“When Hit …”,这一次在“When Breakpoint is Hit”窗口中勾选“Run a macro:(执行一个宏)”,然后在下拉框里面选择刚才你创建的宏的名称。如果你是第一次创建宏,名称应该是:Macros.MyMacros.Module1.ChangeExpression。

  4 勾选“继续执行(Continue execution)”,因为我们并不想让程序中断下来。

  5 点击确定以后,执行程序看一看结果,lcid是不是已经被自动改成0了?

图2 执行结果

  数据断点

  注意,这个技巧仅对C++程序调试有效(或者说native程序),而且你只能在中断模式下才能设置数据断点,另外你还只能在本机设置数据断点。

  上一节的例子里,我们提到了,有的时候一个全局变量被修改了以后,你可能都找不到它是什么时候被修改的,于是夜已深,人已寐,你还在辛苦地调试到底是哪个鬼地方把这个变量的值修改了。F11, F10,……,SHIFT + F11,……,F5,靠,调过了,重来,F11,F10,……

  这种情况下,数据断点就很有用了,Visual Studio允许你在变量被修改的时候,中断程序的执行,是不是很酷?

  默认情况下,你是找不到数据断点这个菜单的,需要执行下面的步骤把它拉出来:

  1 打开你要调试的项目。

  2 点击Visual Studio菜单栏里面的“工具(Tools)”—“自定义(Customize…)”。然后在“自定义(Customize…)”窗口中选择“命令(Commands)”页签里面的“种类(Categories)”列表框里的“调试(Debug)”,找到“新数据断点(New Data Breakpoint)”,将它拖到菜单栏里面相应的位置。

  然后打开或者创建一个C++项目,我们以下面的源代码为例子:

#include "stdafx.h"



int g_Variable = 0;



int _tmain(int argc, _TCHAR* argv[])

{



       printf(
"Before modifying data breakpoints"n");



       g_Variable
= 1;



       printf(
"After modifying data breakpoints"n");



      
return 0;

}

0
相关文章