0

框架回调:

我正在调试由 PropertyChanged 事件触发的 WPF 绑定。然后这会通过一些中间框架调用回调到属性中。

调试:

我在我的属性获取器中设置了一个断点。在即时窗口中,我设置 aStackTrace并找到StackFrameBindingExpression.

缺失的实例:

我希望能够以从我感兴趣的调用中this获取的方法从堆栈中获取参数。如何获取此对象引用?GetMethodStackFrame

4

1 回答 1

0

我发现我可以使用 SOS 通过类似于以下的命令来获取此信息:

!CLRStack -p                     // Dump the CLR stack
...
0043d6ec 511dcea7 System.Windows.Data.BindingExpression.TransferValue(System.Object, Boolean)
PARAMETERS:
    this (<CLR reg>) = 0x0db05468
//...

!do 0x0db8e7fc                   // Dump the object
Name:        System.Windows.Data.BindingExpression
//...
Fields:
  MT        Field   Offset                 Type VT     Attr    Value Name
//...
55569fbc  4001ae3       10 System.WeakReference  0 instance 0db8ea9c _targetElement

!do 0x0db8ea9c
Name:        System.WeakReference
Fields:
   MT       Field   Offset                 Type VT     Attr    Value Name
5556ab88  40006ed        4        System.IntPtr  1 instance 0E92C0BC m_handle

!dumpvc 0x5556ab88 0x0E92C0BC    // Dump the value
Name:        System.IntPtr
Fields:
  MT      Field     Offset                 Type VT     Attr    Value Name
5552a3f8  40004a9        0                  PTR  0 instance 0df6d9f8 m_value

!do 0x0df6d9f8
Name:        System.Windows.Controls.TextBox
//...

但是,我想要一些可以在不使用 SOS 的情况下进行调试时用来深入研究的东西。

于 2012-05-21T09:51:06.073 回答