【问题标题】:Can I set a watch on a heap object, rather than a variable?我可以在堆对象而不是变量上设置监视吗?
【发布时间】:2014-01-22 12:27:13
【问题描述】:

在 Visual Studio 中,我想关注特定 .NET 对象的状态。该对象开始由一个局部变量引用,我想继续在其他堆栈帧甚至其他线程中观察该对象。即使将局部变量设置为null,我也想继续关注原始对象。这可能吗?

【问题讨论】:

    标签: .net visual-studio debugging watch


    【解决方案1】:

    您可以在调试器中右键单击对象(当您将鼠标悬停在某处时的“弹出窗口”上,或在监视窗口中)并调用“生成对象 ID”命令。这会将 ID 分配给您可以在 Watch Window 或 Immediate Window 中使用 1#(或任何 ID)引用的对象。

    此 ID 是对对象的字符串引用。只要附加了调试器,它就永远不会消失。

    您甚至可以在 Watch 和 Immediate Windows 支持的伪 C# 语言中使用这种井号语法(例如 1#.SomeProperty)。

    【讨论】:

    • 我经常使用 Make Object ID 来跨时间识别对象,但我没有意识到我可以将 ID 用作手表表达式,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-01-26
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多