程序crash后为什么没有启动JIT调试器?
2009-04-03 10:25
232 查看
今天在MS ntdebugging blog上看到一个puzzler, 是说一般通过设置注册表的AeDbug选项,当程序崩溃的时候会有一个JIT的调试器跳出来(缺省时候是Dr. Waston, 但是如果装过VS的话就会是VS),在什么情况下debugger不会跳出来?
1. 在一个线程启动时,RTL会在调用BaseThreadInit 之前安装异常处理程序,如下,如果因为某种原因破坏了这个异常处理链的话(chain of exception handler), 那就不会调用debugger出来了
ChildEBP RetAddr
000ef7ac 75fbf837 ntdll!KiFastSystemCallRet
000ef7b0 75fbf86a USER32!NtUserGetMessage+0xc
000ef7cc 00b21418 USER32!GetMessageW+0x33
000ef80c 00b2195d notepad!WinMain+0xec
000ef89c 76e24911 notepad!_initterm_e+0x1a1
000ef8a8 7704e4b6 kernel32!BaseThreadInitThunk+0xe
000ef8e8 7704e489 ntdll!__RtlUserThreadStart+0x23 << Exception Handler在此安装
000ef900 00000000 ntdll!_RtlUserThreadStart+0x1b
2. crash的那个进程负责创建debugger进程,所以在系统资源不够的情况下,有可能创建不成功,则debugger不会被调用...
1. 在一个线程启动时,RTL会在调用BaseThreadInit 之前安装异常处理程序,如下,如果因为某种原因破坏了这个异常处理链的话(chain of exception handler), 那就不会调用debugger出来了
ChildEBP RetAddr
000ef7ac 75fbf837 ntdll!KiFastSystemCallRet
000ef7b0 75fbf86a USER32!NtUserGetMessage+0xc
000ef7cc 00b21418 USER32!GetMessageW+0x33
000ef80c 00b2195d notepad!WinMain+0xec
000ef89c 76e24911 notepad!_initterm_e+0x1a1
000ef8a8 7704e4b6 kernel32!BaseThreadInitThunk+0xe
000ef8e8 7704e489 ntdll!__RtlUserThreadStart+0x23 << Exception Handler在此安装
000ef900 00000000 ntdll!_RtlUserThreadStart+0x1b
2. crash的那个进程负责创建debugger进程,所以在系统资源不够的情况下,有可能创建不成功,则debugger不会被调用...
相关文章推荐
- 处理【试图运行项目时出错:无法启动调试,没有正确安装调试器。请运行安装程序安装或修复调试器。】
- VS2003 2005 试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器。
- 存底-VS2003 试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器。
- 试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器
- 常见问题:试图运行项目时出错:无法启动调试 没有正确安装调试器。请运行安装程序安装或修复调试器
- 转:试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器
- VS2003 试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器。
- 关于vs2002调试时提示:试图运行项目时出错:无法启动调试 没有正确安装调试器。请运行安装程序安装或修复调试器
- VS2003 试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器。
- VS2003 试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器。
- 启动调时错误"无法启动调试 没有正确安装调试器 请运行安装程序安装或修复调试器"的解决办法
- 常见问题:试图运行项目时出错:无法启动调试 没有正确安装调试器。请运行安装程序安装或修复调试器
- 编程技巧之:vs2003调试时提示:试图运行项目时出错:无法启动调试 没有正确安装调试器。请运行安装程序安装
- 试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器
- VS2003 试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器。
- 试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器 。
- "无法启动调试 没有正确安装调试器 请运行安装程序安装或修复调试器" VS2003错误
- 无法显示进程 没有正确安装调试器 请运行安装程序安装或修复调试器 vs2003 无法启动调试
- 试图运行项目时出错,无法启动调试。没有正确安装调试器,请运行安装程序安装或恢复调试器。
- VS2003 试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器。