Share via


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

本主题适用于:

版本

Visual Basic

C#

F#

C++

Web Developer

学习版

主题不适用 主题不适用 主题不适用

仅限本机

主题不适用

专业版、高级专业版和旗舰版

主题不适用 主题不适用 主题不适用

仅限本机

主题不适用

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

数据断点在下列情况中无效:未在调试的进程向该内存位置写入数据,或者该内存位置由两个或多个进程共享。

另外,如果在内核中更新了该内存位置,数据断点也将无效。 例如,如果将内存传递给 32 位的 Windows ReadFile 函数,则会在内核模式下更新内存,并且调试器不会在执行内存写入操作时中断。

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

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

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

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

提示

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

设置内存更改断点

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

    - 或 -

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

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

  2. 在**“地址”**框中,键入内存地址或计算结果为内存地址的表达式。

    例如,键入 &avar,则当变量 avar 的内容更改时中断。

  3. 在**“字节计数”**框中,键入希望调试器监视的字节数。

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

  4. 单击**“确定”**。

请参见

概念

断点与跟踪点