2012-08-03 5 views
8

リモートサーバー上で実行されているWebサイトがあり、発生している例外から情報を取得したいと考えています。私はVSをインストールすることも、リモートデバッグを使うこともできず、さまざまなバージョンのWinDbgをほとんど使用せずに使っています。私のローカルテストでは、WinDbgをC++例外またはCLR例外を破棄することができますが、「何かが投げられた」よりもはるかに多くの情報を得ることはできません。VSデバッガを接続せずにCLR例外からスタックトレースを取得できますか?

WinDbgを使用する方法はありますか、別の方法がありますか、適切なログがないために私はうんざりしていますか?

+0

私はあなたがより良いロギングを必要としていると言うでしょう。 – YePhIcK

+0

私はセットアップします[adplus](http://blogs.msdn.com/b/ntdebugging/archive/2009/05/18/capturing-adplus-clr-crashes .aspx)が一時的にミニダンプを作成して例外がスローされた場合、WinDbgでミニダンプを見てください。 – vcsjones

答えて

14

は、これらのコマンドを入力して、プロセスにWinDbgのを取り付けます

.symfix 
sxe clr 
sxd av 
.loadby sos clr 
g 

実行(GOコマンドの後に)継続すると、CLR例外がスローされるたびに中断します(または任意の他の未処理の例外)。それはあなたが見るCLR例外に壊したび:

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

を次に、SOSを使用することができ、スタック内の管理対象オブジェクトをダンプしスタック、!dsoをダンプするために、例外の型をプリントアウトする!peなどのコマンド!ClrStackなど

編集:私はsxesxdコマンドでタイプミスがあった。それに気付いた@MStoddに感謝します。

+0

「sxe」と「sxd」の前に点がないことを意味しますか? – MStodd

+0

@MStodd、良い点!気づいてくれてありがとう。私は正しいコマンドで投稿を更新しました。 –

+1

私は後で私の台無しのマシンでそれを試してみるつもりですが、それは良い見ています。 .NET 2.0のように見えますが、 '.loadby sos clr'の代わりに' .loadby sos mscorwks'が必要です。それは正しい? – MStodd

関連する問題