多数のダンプ ファイルが提供されました。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
前のフレーム内でできるように、管理されたスタックで同じことを行う方法を知りたいです。このスタックフレームの関数パラメータの値/参照も知りたいです。
そのようなアクションを実行するコマンドはありますか?