使用__except分析故障转储

时间:2012-04-25 09:03:52

标签: c++ c winapi windbg crash-dumps

假设我有以下代码

main()
{

   __try 
  {

   //---> SEH EXCEPTION HAS HAPPENED HERE

  }
   __finally
  {

   //---> CRASH DUMP WAS TAKEN HERE

  }

}

崩溃转储是在“--->”处进行的标记的地方。我可以通过userdump了解将我们带到那里的原始异常是什么。我在堆栈跟踪中找不到任何信息(看起来就像没有异常处理程序的正常执行一样)

UPD:对不起家伙似乎异常不在此线程中,否则最终处理程序将在展开阶段从__except_handler明确调用。需要关闭

2 个答案:

答案 0 :(得分:1)

使用WinDbg并按照此博客文章中的详细信息进行操作:http://blogs.msdn.com/b/slavao/archive/2005/01/30/363428.aspx可以从此处下载WinDbg:http://msdn.microsoft.com/en-us/windows/hardware/gg463009

答案 1 :(得分:1)

你只是做错了。崩溃转储应该在__except过滤器中进行。现在.excr和!analyze在调试器中运行得很好。