2012-01-11 14 views
0

私は、スタックの開始時にこれがあり、WinDBGのを使用して自分のアプリケーションにスローされた例外の底に取得しようとしています:WinDBGのESPとEIP

04a4f25c 746fc477 System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(System.Object, Boolean) 
    PARAMETERS: 
    state = <no data> 
    timedOut = <no data> 
    LOCALS: 
    <no data> 
    <no data> 

04a4f3ec 74b91b5c [GCFrame: 04a4f3ec] 

私は(ESPスタックポインタを見ることができます04a4f25cと04a4f3ec)とEIP命令ポインタ(746fc477と74b91b5c)は、WinDBGコマンドがありますか、とにかく、このスレッドの開始方法を知ることができますか?

答えて

1

!CLRStackは管理対象スタックを表示します。しかし、これはThreadPoolWaitOrTimerCallbackなので、あなたが所有するコードにない可能性があります。コールバックをキューに入れる場所を調べる必要があります。

0

あなたがコールスタックから、例外をスローしたスレッドを見ていない可能性が高いと思います。発行しようとしましたか:~*e !CLRStackまたは!Threads?これにより、スレッドが例外コンテキストを保持する情報が得られるはずです。その後、~<thread_id>sコマンドを使用してそのスレッドに切り替えて、さらに調べることができます。