在 CDB/WinDbg 内的托管堆栈中从堆栈框架导航到堆栈框架
Navigate from stackframe to stackframe in the Managed stack inside CDB/WinDbg
我得到了十几个转储文件。使用 windbg/sosex 命令 !dumpstack -EE
,其中很多在结尾显示这些行:
0aa6ce7c 028ea126 (MethodDesc 02756288 +0x16 TheCompany.Toolbox.Log.Logger.Info(System.String))
0aa6cecc 028ea126 (MethodDesc 02756288 +0x16 TheCompany.Toolbox.Log.Logger.Info(System.String))
0aa6cf54 028ea126 (MethodDesc 02756288 +0x16 TheCompany.Toolbox.Log.Logger.Info(System.String))
0aa6d080 6f42bc51 (MethodDesc 6f1da670 +0x81 System.TimeSpan.TimeToTicks(Int32, Int32, Int32))
0aa6d0a8 6f42c0a0 (MethodDesc 6f1daf1c +0x40 System.DateTime.TimeToTicks(Int32, Int32, Int32))
0aa6d0d0 6f42cb8f (MethodDesc 6f1da8ec +0x7f System.DateTime.Add(Double, Int32))
不幸的是,尝试使用 !clrstack -a
获取局部变量并没有给我合理的结果:
0:045> !clrstack -a
OS Thread Id: 0xf50 (45)
Child SP IP Call Site
0aa6ed78 76df7094 [GCFrame: 0aa6ed78]
0aa6ef5c 76df7094 [DebuggerU2MCatchHandlerFrame: 0aa6ef5c]
有没有办法移动到上一帧以外的另一帧? (以便在这个框架中获取当地人)。
在本机模式下,我可以这样做:
.frame @$.frame +1
然后我可以让本地人在前一帧中使用
dv
我想知道如何对托管堆栈执行相同的操作,所以我可以在之前的帧中执行 !clrstack -a
。我还想知道这个堆栈框架中的函数参数value/reference。
是否有执行此类操作的命令?
我得到了十几个转储文件。使用 windbg/sosex 命令 !dumpstack -EE
,其中很多在结尾显示这些行:
0aa6ce7c 028ea126 (MethodDesc 02756288 +0x16 TheCompany.Toolbox.Log.Logger.Info(System.String))
0aa6cecc 028ea126 (MethodDesc 02756288 +0x16 TheCompany.Toolbox.Log.Logger.Info(System.String))
0aa6cf54 028ea126 (MethodDesc 02756288 +0x16 TheCompany.Toolbox.Log.Logger.Info(System.String))
0aa6d080 6f42bc51 (MethodDesc 6f1da670 +0x81 System.TimeSpan.TimeToTicks(Int32, Int32, Int32))
0aa6d0a8 6f42c0a0 (MethodDesc 6f1daf1c +0x40 System.DateTime.TimeToTicks(Int32, Int32, Int32))
0aa6d0d0 6f42cb8f (MethodDesc 6f1da8ec +0x7f System.DateTime.Add(Double, Int32))
不幸的是,尝试使用 !clrstack -a
获取局部变量并没有给我合理的结果:
0:045> !clrstack -a
OS Thread Id: 0xf50 (45)
Child SP IP Call Site
0aa6ed78 76df7094 [GCFrame: 0aa6ed78]
0aa6ef5c 76df7094 [DebuggerU2MCatchHandlerFrame: 0aa6ef5c]
有没有办法移动到上一帧以外的另一帧? (以便在这个框架中获取当地人)。
在本机模式下,我可以这样做:
.frame @$.frame +1
然后我可以让本地人在前一帧中使用
dv
我想知道如何对托管堆栈执行相同的操作,所以我可以在之前的帧中执行 !clrstack -a
。我还想知道这个堆栈框架中的函数参数value/reference。
是否有执行此类操作的命令?