使用WinDBG排查应用程序加载时崩溃的问题
假设有个应用程序, 一启动就崩溃, 根本就来不及让你用Visual Studio来Attach, 并且该应用程序在使用Visual Studio直接lunch的情况下又不会出现这样的问题, 该怎么办呢?
除了使用<<在进程崩溃的时候自动抓取一个DUMP文件>>中的方法, 还可以使用WinDBG直接加载应用程序的可执行文件, 然后在应用程序退出的系统函数上下断点, 从而得到退出时的call stack.
让我们用notepad.exe作为例子吧.
首先, 使用Open Executable来打开notepad.exe的可执行文件.
然后, 运行下面的两条命令, 在程序退出的函数上设置断点.
bp Kernel32!ExitProcess
bp Kernel32!TerminateProcess
然后输入命令"g". 等待它异常退出时, 会进入断点, 然后是用"k"命令来得到call stack.