0

假设我有以下代码

main()
{

   __try 
  {

   //---> SEH EXCEPTION HAS HAPPENED HERE

  }
   __finally
  {

   //---> CRASH DUMP WAS TAKEN HERE

  }

}

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

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

4

2 回答 2

1

你只是做错了。崩溃转储应该在 __except 过滤器中进行。现在 .excr 和 !analyze 将在调试器中正常工作。

于 2012-04-25T10:07:18.193 回答
1

使用 WinDbg 并遵循此博客文章中的详细信息:http: //blogs.msdn.com/b/slavao/archive/2005/01/30/363428.aspx WinDbg 可以从这里下载:http: //msdn.microsoft .com/en-us/windows/hardware/gg463009

于 2012-04-25T09:14:47.610 回答