0

サーバー: Windows 2012r2 Debug Diagnostic Tool v2.1 update 1

デバッガーはアプリケーション プールにアタッチされます。サイトの正しいプールであることを確認しました。プールはクラッシュしますが、ダンプ ファイルは生成されません。

「そのアプリケーション プールを提供するプロセスで一連の障害が発生したため、アプリケーション プール '' は自動的に無効にされています。」

ルールは、アプリケーション プールを参照するように設定されているだけで、最初のチャンスの例外はキャプチャされません。数回削除して再度追加しようとしましたが、ダンプが生成されません。

生成されたデバッグ ログを確認しましたが、これはプールがクラッシュする直前に生成された最後の例外です。

警告: フレーム IP は既知のモジュールにありません。次のフレームは間違っている可能性があります。0x0 0x0 0x0

編集:最初のチャンスの例外に対してダンプが生成されることを追加したかった。2 番目のチャンス、または実際にクラッシュを引き起こしているチャンスを捉えようとする場合にのみ問題になるようです。

編集 2: リクエストごとのデバッグ ログの 1 つからの最後の数行:

[9/16/2015 7:21:31 PM]
  Exception 0XC00000FD on thread 154788.  DetailID = 48
  Thread created. New thread system id - System ID: 85156
  Thread exited. Exiting thread system id - System ID: 85156. Exit code - 0x00000000
  Thread exited. Exiting thread system id - System ID: 326816. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 41368. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 213340. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 300224. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 51008. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 45288. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 75176. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 143512. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 68504. Exit code - 0x800703e9
....... (goes on like this for awhile)
Process exited. Exit code - 0x800703e9

例外はこれに関連しています

DetailID = 48
    Count:    1
    Exception #:  0XC00000FD
    Stack:        

        WARNING: Frame IP not in any known module. Following frames may be wrong.
        0x0
        0x0
        0x0
        0x0
        0x0
4

1 に答える 1

4

デフォルトでは、debugdiag クラッシュ ルールは、未処理のすべてのセカンド チャンス例外のダンプのみを取得します (クラッシュ ルールを作成し、すべての設定をデフォルトのままにした場合)。そのため、ダンプが生成されない場合、プロセスはセカンド チャンス例外でクラッシュしません。

CLR は、致命的な例外が発生したときに TerminateProcess 関数を呼び出すことがあります (スタック オーバーフローがその 1 つです)。したがって、プロセスがこれらの種類の例外でクラッシュしている場合、既定のルールを使用してダンプを取得することはできません。ルールを変更して、既定のブレークポイント リストにある ntdll terminateprocess ブレークポイントを含める必要があります。このブレークポイントを有効にすることの悪影響は、SAFE EXITS (ワーカー プロセスのアイドル シャットダウン、リサイクルなど) のダンプも取得されるようになったため、ログに記録されたイベントのタイム スタンプを確認し、ダンプ ファイルと一致させる必要があることです...

w3wp.txt の debugdiag によって生成されたテキスト ファイルに表示される内容の最後の 5 ~ 10 行を貼り付けると役立ちます。

編集:デバッガーで表示されるようにコールスタックを追加します...

0:065> kL 50
# ChildEBP RetAddr  
00 1a8f291c 74b80947 ntdll!NtTerminateProcess
01 1a8f292c 73e0843d KERNELBASE!TerminateProcess+0x23
02 1a8f29b8 73e07d03 clr!EEPolicy::HandleFatalStackOverflow+0x1ba
03 1a8f29e8 73dca49f clr!EEPolicy::HandleStackOverflow+0x1ac
04 1a8f2a0c 76f500b1 clr!COMPlusFrameHandler+0x9b
05 1a8f2a30 76f50083 ntdll!ExecuteHandler2+0x26
06 1a8f2afc 76f507ff ntdll!ExecuteHandler+0x24
07 1a8f2afc 17732c83 ntdll!KiUserExceptionDispatcher+0xf
08 1a8f309c 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x1b
09 1a8f3184 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0a 1a8f326c 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0b 1a8f3354 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0c 1a8f343c 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0d 1a8f3524 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0e 1a8f360c 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0f 1a8f36f4 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
10 1a8f37dc 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
于 2015-09-22T15:00:08.130 に答える