VS调试并观察变量的变量

时间:2010-03-27 18:56:55

标签: c# visual-studio debugging

我在一个类中有一个属性,它被某些东西改变了。我更改此代码值的唯一地方是一行,如下所示:

pushpin.Position.Altitude = -31;

在visual studio调试期间,有没有办法观察.Atitude对所做的任何更改,最好是在更改值的赋值语句中中断。

如果这是追踪此问题的正确方法,我是否可以获得有关如何执行此操作的分步教程/说明?

感谢。

3 个答案:

答案 0 :(得分:12)

如果这是一个属性,那么您可以通过向属性的set方法添加断点来完成此操作。将光标放在set语句中并按F9将创建断点。

如果这是一个字段,则无法直接观看。当字段更改值时断开是C ++中支持的操作,称为数据断点,但CLR不支持。最好的解决方法是暂时将字段转换为属性并在set语句中断开。

修改

基于OP更新说它是第三方DLL。

在这种情况下,您希望使用Visual Studio的Break at Function功能。第一步是禁用Just My Code。

  • 工具 - >选项 - >调试器
  • 取消选中“启用我的代码”

接下来实际设置命名断点

  • 打开断点窗口(调试器 - > Windows - >断点)
  • 单击新按钮并选择“Break at function”
  • 输入属性的名称。例如:Position.set_Altitude

您可能需要完全限定名称才能使其正常运作

答案 1 :(得分:2)

您可以通过设置bp然后右键单击来设置条件断点,以指定在该行中断的条件。

您可以向变量添加“监视”,并指定在值变化的任何地方/任何时间中断。

答案 2 :(得分:0)

您需要设置数据断点。当某个内存地址发生变化时,数据断点将导致调试器中断。

More detailed description and instructions how to set a data breakpoint.