【问题标题】:analyzing the crash dump with __except使用 __except 分析故障转储
【发布时间】:2012-04-25 09:03:52
【问题描述】:

假设我有以下代码

main()
{

   __try 
  {

   //---> SEH EXCEPTION HAS HAPPENED HERE

  }
   __finally
  {

   //---> CRASH DUMP WAS TAKEN HERE

  }

}

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

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

【问题讨论】:

  • 你在检查所有线程吗?
  • 出现异常是不能正常的。故障指令和异常代码是什么?很可能是错误的指针/数组索引或内存损坏导致它。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多