【问题标题】:How to load a stacktrace into Visual Studio 2013 for offline debugging?如何将堆栈跟踪加载到 Visual Studio 2013 以进行离线调试?
【发布时间】:2014-11-16 22:15:18
【问题描述】:

好吧,我的 dll 文件通过了所有测试,但不知何故,在生产服务器上,它有时会在最意想不到的时刻崩溃。

实际上不可能运行调试器,但有一个生成的堆栈跟踪文件:

An exception occured at address 0x0045DA51 in module my.dll

Registers:

EAX: 0x61A881BC 
//data......
EFLAGS: 0x00010206

Stack:
+0000: 0x0379F5E4   0x00000000   0x01F1B968   0x00000001
+0010: 0x00000007   0x01F1BCA8   0x00454622   0x742F3500
+0020: 0x00000034   0x00000001   0x00000009   0x00000002
+0030: 0x00000000   0x00000240   0x61A881BC   0x000000A4
+0040: 0x00000000   0x60104F70   0x01F1C15C   0x60104F7D
//more data..

有没有可能将这些数据加载到visual studio 2013中进行一些离线调试(不是运行时调试,我不知道怎么调用它)?

【问题讨论】:

    标签: windows debugging visual-c++ visual-studio-2013 visual-studio-debugging


    【解决方案1】:

    您应该在某处看到一个故障转储,一个 .dmp 文件。您可以通过 sysinternals PrcessExplorer 导出它,不确定是否可以使用默认任务管理器,但这当然是在崩溃之前。不幸的是,我不再知道如何强制进程在崩溃时生成 .dmp 文件..

    但是一旦你有了 .dmp 文件,你就可以在 VS 中打开它(我想从 2010 年开始,也许是 2012 年)。 有两种转储,一种通常小于 1 MB 的小型转储(基本上只包括该点的执行点),另一种是“完整转储”,它包含整个进程的工作集,可以轻松地是数百兆。小型转储通常足以开始。

    很抱歉答案不完整,但也许它能让你走上正轨(我现在没时间自己调查)。

    【讨论】:

      猜你喜欢
      • 2012-11-10
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 2021-09-28
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      相关资源
      最近更新 更多