如何:设置数据断点(仅限本机)

更新:2007 年 11 月

本主题适用于:

版本

Visual Basic

C#

C++

Web Developer

速成版

主题不适用 主题不适用

仅限本机

主题不适用

标准版

主题不适用 主题不适用

仅限本机

主题不适用

专业团队版

主题不适用 主题不适用

仅限本机

主题不适用

表格图例:

主题适用

适用

主题不适用

不适用

主题适用,但命令默认情况下隐藏

默认情况下隐藏的一条或多条命令。

数据断点可在写入存储在指定内存位置的值时中断执行。如果只读取而不写入该值,则不会中断执行。

数据断点在下列情况中无效:未在调试的进程向该内存位置写入数据,或者该内存位置由两个或多个进程共享。另外,如果在内核中更新了该内存位置,数据断点也将无效。例如,如果将内存传递给 32 位的 Windows ReadFile 函数,则会在内核模式下更新内存,并且调试器不会在执行内存写入操作时中断。

若要设置数据断点,必须使调试器只处于中断模式下。

当从一个调试会话转到下一个会话时,变量地址会更改。因此,数据断点在每个调试会话结束时将被自动禁用。

如果在本地变量上设置数据断点,则在函数结束后,数据断点仍保持启用状态。但是,设置断点的内存地址将不再具有相同的含义。因此,此类断点的结果是不可预知的。如果在局部变量上设置了数据断点,最佳方案是在函数结束前移除或禁用断点。

Visual Studio 支持最多为每个解决方案设置四个数据断点。

说明:

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

设置内存更改断点

  1. 在“调试”菜单上选择“新建断点”,然后单击“新建数据断点”。

    - 或 -

    在“断点”窗口菜单中单击“新建”,然后选择“新建数据断点”。

    出现“新建断点”对话框。

  2. 在“地址”框中,键入内存地址或计算结果为内存地址的表达式。例如,输入 &avar ,则当变量 avar 的内容更改时中断。

  3. 在“字节计数”框中,键入希望调试器监视的字节数。例如,如果键入 4,调试器将监视从 &myFunction 开始的四个字节,并在其中有任何字节的值发生更改时中断。

  4. 单击“确定”。

请参见

概念

断点与跟踪点