如何:设置数据断点(仅限本机)
更新:2007 年 11 月
本主题适用于:
版本 |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
速成版 |
仅限本机 |
|||
标准版 |
仅限本机 |
|||
专业团队版 |
仅限本机 |
表格图例:
适用 |
|
不适用 |
|
默认情况下隐藏的一条或多条命令。 |
数据断点可在写入存储在指定内存位置的值时中断执行。如果只读取而不写入该值,则不会中断执行。
数据断点在下列情况中无效:未在调试的进程向该内存位置写入数据,或者该内存位置由两个或多个进程共享。另外,如果在内核中更新了该内存位置,数据断点也将无效。例如,如果将内存传递给 32 位的 Windows ReadFile 函数,则会在内核模式下更新内存,并且调试器不会在执行内存写入操作时中断。
若要设置数据断点,必须使调试器只处于中断模式下。
当从一个调试会话转到下一个会话时,变量地址会更改。因此,数据断点在每个调试会话结束时将被自动禁用。
如果在本地变量上设置数据断点,则在函数结束后,数据断点仍保持启用状态。但是,设置断点的内存地址将不再具有相同的含义。因此,此类断点的结果是不可预知的。如果在局部变量上设置了数据断点,最佳方案是在函数结束前移除或禁用断点。
Visual Studio 支持最多为每个解决方案设置四个数据断点。
说明: |
---|
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。 |
设置内存更改断点
在“调试”菜单上选择“新建断点”,然后单击“新建数据断点”。
- 或 -
在“断点”窗口菜单中单击“新建”,然后选择“新建数据断点”。
出现“新建断点”对话框。
在“地址”框中,键入内存地址或计算结果为内存地址的表达式。例如,输入 &avar ,则当变量 avar 的内容更改时中断。
在“字节计数”框中,键入希望调试器监视的字节数。例如,如果键入 4,调试器将监视从 &myFunction 开始的四个字节,并在其中有任何字节的值发生更改时中断。
单击“确定”。