框架回调:
我正在调试由 PropertyChanged 事件触发的 WPF 绑定。然后这会通过一些中间框架调用回调到属性中。
调试:
我在我的属性获取器中设置了一个断点。在即时窗口中,我设置 aStackTrace
并找到StackFrame
与BindingExpression
.
缺失的实例:
我希望能够以从我感兴趣的调用中this
获取的方法从堆栈中获取参数。如何获取此对象引用?GetMethod
StackFrame
框架回调:
我正在调试由 PropertyChanged 事件触发的 WPF 绑定。然后这会通过一些中间框架调用回调到属性中。
调试:
我在我的属性获取器中设置了一个断点。在即时窗口中,我设置 aStackTrace
并找到StackFrame
与BindingExpression
.
缺失的实例:
我希望能够以从我感兴趣的调用中this
获取的方法从堆栈中获取参数。如何获取此对象引用?GetMethod
StackFrame
我发现我可以使用 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 的情况下进行调试时用来深入研究的东西。