1.Windows编程时,可以设置SetUnhandleException捕获异常,这样在程序在崩溃时,SetUnhandleException函数中设置的获取异常函数ExceptionHandled(PEXCEPTION_INTERS inf),在程序异常时,就会被调用,PEXCEPTION_INTERS结构中附带了死机时的地址,这样可以在ExceptionHandled函数中,保存死机时的上下文地址ContextAddress(inf->ContextRecord)
2. Windbg调试dump文件,先在windbg中设置好源码路径、exe路径、调试符号文件pdb路径
打开dump文件,此时在Command中输入:
>lm ;查看符号文件是否加载
>.reload /f ;强制加载符号文件
>.cxr ContextAddr ; 查看死机时的上下文地址,如果符号路径设置好了,此时就可以看到死机时的调用堆栈