在 VS 2013 调试器中确定引用相同值的变量
Determining variables referencing the same value in VS 2013 debugger
在 Visual Studio 2013 调试器中单步执行时,有没有办法找出当前监视的变量,它当前正在引用哪个其他 variable/field?
在下面的经典示例中,是否可以在最后一行确定 f2.bar 实际上引用了 f1.bar?或者,是否有一种快速的方法来通过引用变量列出所有当前指向该值的变量?
public class Foo
{
public string bar;
}
var f1 = new Foo();
var f2 = f1;
f2.bar = "mine";
f1.bar = "this";
Console.WriteLine(f2.bar);
f1.bar = "mine";
f2.bar = "this";
Console.WriteLine(f1.bar);
结果:
> this
> this
如果我没理解错的话,你可以使用Make Object ID功能。
您所要做的就是在调试的某个时候早些时候为 f1
提供对象 ID。稍后您可以检查 f2
——如果 f2
指向同一个 f1
调试器将向您显示使用 f1
创建的对象 ID,否则不会。
换句话说,"Make Object ID" 会告诉您是否正在查看相同的参考文献。
在 Visual Studio 2013 调试器中单步执行时,有没有办法找出当前监视的变量,它当前正在引用哪个其他 variable/field?
在下面的经典示例中,是否可以在最后一行确定 f2.bar 实际上引用了 f1.bar?或者,是否有一种快速的方法来通过引用变量列出所有当前指向该值的变量?
public class Foo
{
public string bar;
}
var f1 = new Foo();
var f2 = f1;
f2.bar = "mine";
f1.bar = "this";
Console.WriteLine(f2.bar);
f1.bar = "mine";
f2.bar = "this";
Console.WriteLine(f1.bar);
结果:
> this
> this
如果我没理解错的话,你可以使用Make Object ID功能。
您所要做的就是在调试的某个时候早些时候为 f1
提供对象 ID。稍后您可以检查 f2
——如果 f2
指向同一个 f1
调试器将向您显示使用 f1
创建的对象 ID,否则不会。
换句话说,"Make Object ID" 会告诉您是否正在查看相同的参考文献。