10

リモート サーバーで Web サイトを実行していて、発生している例外から情報を取得したいと考えています。VS をインストールしたり、リモート デバッグを使用したりすることができず、さまざまなバージョンの WinDbg を使用しようとしましたが、ほとんど成功しませんでした。私のローカル テストでは、C++ 例外またはスローした CLR 例外で WinDbg を中断させることができますが、「何かがスローされた」以外の情報は得られません。

WinDbg は進むべき道ですか、それとも別の方法がありますか、それとも適切なログを記録していないために私はうんざりしていますか?

4

1 に答える 1

19

WinDbg をプロセスにアタッチし、次のコマンドを入力します。

.symfix
sxe clr
sxd av
.loadby sos clr
g

実行は (go コマンドの後) 続行され、CLR 例外 (またはその他の未処理の例外) がスローされるたびに中断されます。CLR 例外で中断するたびに、次のように表示されます。

(xxxx.xxxx): CLR exception - code e0434352 (first chance)

次に、SOS コマンドを使用!peして、例外タイプの出力、!ClrStackスタックの!dsoダンプ、スタック内の管理対象オブジェクトのダンプなどを行うことができます。

sxe編集:とsxdコマンドにタイプミスがありました。それに気づいてくれた@MStoddに感謝します。

于 2012-08-03T21:43:04.103 に答える