.net 如何获取System.Diagnostics.StackFrame获得的方法的第一个参数(此参数)?

.net 如何获取System.Diagnostics.StackFrame获得的方法的第一个参数(此参数)?,.net,debugging,stack-trace,.net,Debugging,Stack Trace,框架回调: 我正在调试由PropertyChanged事件触发的WPF绑定。然后通过一些中间框架调用将其回调到proprety中 调试: 我在属性getter中设置了一个断点。在即时窗口中,我设置了一个StackTrace,并找到了一个与BindingExpression关联的StackFrame 缺少的实例: 我希望能够在我感兴趣的StackFrame上调用GetMethod获得的方法中从堆栈中获取this参数。如何获取此对象引用?我发现我可以使用SOS通过类似以下命令获取此对象引用: !CL

框架回调:

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

调试:

我在属性getter中设置了一个断点。在即时窗口中,我设置了一个
StackTrace
,并找到了一个与
BindingExpression
关联的
StackFrame

缺少的实例:


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

我发现我可以使用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
//...
!CLRStack-p//转储CLR堆栈
...
0043d6ec 511dcea7 System.Windows.Data.BindingExpression.TransferValue(System.Object,布尔值)
参数:
此()=0x0db05468
//...
!执行0x0db8e7fc//转储对象
名称:System.Windows.Data.BindingExpression
//...
领域:
MT字段偏移类型VT属性值名称
//...
55569fbc 4001ae3 10 System.WeakReference 0实例0db8ea9c\u targetElement
!执行0x0db8ea9c
名称:System.WeakReference
领域:
MT字段偏移类型VT属性值名称
5556ab88 40006ed 4 System.IntPtr 1实例0E92C0BC m_句柄
!dumpvc 0x5556ab88 0x0E92C0BC//转储该值
名称:System.IntPtr
领域:
MT字段偏移类型VT属性值名称
5552a3f8 40004a9 0 PTR 0实例0df6d9f8 m_值
!执行0x0df6d9f8
名称:System.Windows.Controls.TextBox
//...
但是,我希望在使用SOS进行w/o调试时可以使用一些东西来深入了解这一点