调试诊断工具不会在崩溃时生成转储
Debug Diagnostic Tool not generating dumps on Crash
服务器:Windows2012r2
调试诊断工具 v2.1 更新 1
调试器已附加到应用程序池。我已经确认它是该站点的正确池。池崩溃,但从未生成转储文件。
"Application pool '' is being automatically disabled due to a series
of failures in the process(es) serving that application pool."
规则只是简单地设置为查看应用程序池,而不是捕获第一次机会异常。我试过几次删除并重新添加它,但它从未生成转储。
我检查了它生成的调试日志,这是在池崩溃之前生成的最后一个异常:
WARNING: Frame IP not in any known module. Following frames may be
wrong.
0x0
0x0
0x0
编辑:想要补充的是转储确实会为第一次机会异常生成。似乎只有在试图抓住第二次机会或真正导致崩溃的机会时才会出现问题。
编辑 2:每个请求的调试日志之一的最后几行:
[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
默认情况下,debugdiag 崩溃规则仅对所有未处理的第二次机会异常进行转储(如果您创建崩溃规则并将所有设置保留为默认值),因此如果未生成转储,则进程不会崩溃第二次机会例外。
CLR 有时会在遇到致命异常(堆栈溢出是其中之一)时调用 TerminateProcess 函数。因此,如果您的进程因此类异常而崩溃,那么您将无法使用默认规则进行转储,您应该更改规则以包含默认断点列表中存在的 ntdll terminateprocess 断点。启用此断点的不良影响是,现在即使是安全退出(如工作进程空闲关闭、回收等),您也会得到转储,因此您需要检查记录的事件的时间戳并将转储文件与该文件匹配...
如果您粘贴 debugdiag 为 w3wp.txt 生成的文本文件中看到的最后 5-10 行内容,将会有所帮助。
编辑:添加我在调试器中看到的调用堆栈...
0:065> kL 50
# ChildEBP RetAddr
00 1a8f291c 74b80947 ntdll!NtTerminateProcess
01 1a8f292c 73e0843d KERNELBASE!TerminateProcess+0x23
02 1a8f29b8 73e07d03 clr!EEPolicy::HandleFatalWhosebug+0x1ba
03 1a8f29e8 73dca49f clr!EEPolicy::HandleWhosebug+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
服务器:Windows2012r2 调试诊断工具 v2.1 更新 1
调试器已附加到应用程序池。我已经确认它是该站点的正确池。池崩溃,但从未生成转储文件。
"Application pool '' is being automatically disabled due to a series of failures in the process(es) serving that application pool."
规则只是简单地设置为查看应用程序池,而不是捕获第一次机会异常。我试过几次删除并重新添加它,但它从未生成转储。
我检查了它生成的调试日志,这是在池崩溃之前生成的最后一个异常:
WARNING: Frame IP not in any known module. Following frames may be wrong. 0x0 0x0 0x0
编辑:想要补充的是转储确实会为第一次机会异常生成。似乎只有在试图抓住第二次机会或真正导致崩溃的机会时才会出现问题。
编辑 2:每个请求的调试日志之一的最后几行:
[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
默认情况下,debugdiag 崩溃规则仅对所有未处理的第二次机会异常进行转储(如果您创建崩溃规则并将所有设置保留为默认值),因此如果未生成转储,则进程不会崩溃第二次机会例外。
CLR 有时会在遇到致命异常(堆栈溢出是其中之一)时调用 TerminateProcess 函数。因此,如果您的进程因此类异常而崩溃,那么您将无法使用默认规则进行转储,您应该更改规则以包含默认断点列表中存在的 ntdll terminateprocess 断点。启用此断点的不良影响是,现在即使是安全退出(如工作进程空闲关闭、回收等),您也会得到转储,因此您需要检查记录的事件的时间戳并将转储文件与该文件匹配...
如果您粘贴 debugdiag 为 w3wp.txt 生成的文本文件中看到的最后 5-10 行内容,将会有所帮助。
编辑:添加我在调试器中看到的调用堆栈...
0:065> kL 50
# ChildEBP RetAddr
00 1a8f291c 74b80947 ntdll!NtTerminateProcess
01 1a8f292c 73e0843d KERNELBASE!TerminateProcess+0x23
02 1a8f29b8 73e07d03 clr!EEPolicy::HandleFatalWhosebug+0x1ba
03 1a8f29e8 73dca49f clr!EEPolicy::HandleWhosebug+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