如何将堆栈跟踪加载到Visual Studio 2013以进行脱机调试?

时间:2014-11-16 22:15:19

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

在我的dll文件通过所有测试的情况下,但是在生产服务器上,它有时会在最少的预期时刻崩溃。

实际上没有可能运行调试器但是有一个生成的stacktrace文件:

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中以执行某些离线调试(不是运行时调试,我不知道如何调用它)?

1 个答案:

答案 0 :(得分:0)

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

但是一旦你有.dmp文件,就可以在VS中打开它(我想自2010年,也许是2012年)。 有两种转储,一种小型转储(基本上只包括该点的执行点),通常是< 1 MB,以及一个完整的转储",它包含了整个过程的工作集,可以很容易地达到数百兆。 minidump通常足以开始。

对不完整的答案感到抱歉,但也许它会让你走上正轨(现在我没时间调查)。