如何解密procdump

时间:2016-05-11 15:53:46

标签: .net windbg crash-dumps procdump

我使用以下命令设置procdump来收集崩溃转储

procdump -ma -i c:\dumps

我现在看到以下转储文件。

MyProcess.exe_150422_041763.dmp
MyProcess.exe_150422_153851.dmp
MyProcess.exe_150422_106442.dmp
MyProcess.exe_150422_043551.dmp
MyProcess.exe_150422_083220.dmp

这里附有文件名的不同数字是什么? 由于进程已崩溃,我无法确认,但我认为150442是PID

2 个答案:

答案 0 :(得分:3)

来自docs

  

如果省略转储文件名,则默认为   <processname>_<datetime>.dmp

所以对于这个例子:

MyProcess.exe_150422_041763.dmp

这是:

process name: MyProcess.exe

date: 2015 April 22

time: 041763

不确定这是否代表4小时17分63秒????

答案 1 :(得分:1)

150442不能是PID,因为PID只有2个字节。即使是十进制,这也是不可能的。要检查:只需在WinDbg中打开转储,然后使用|查看PID。

书籍“Windows SysInternals Administrator's Reference”(我的版本是2012-10-19)描述了第230页的文件名,如下所示:

  

文件名的格式为 basename_yyMMdd_HHmmss.dmp

(重点如书中所示)

以及稍后的同一页

  

请注意,文件名的格式是固定的,与区域设置无关。

这与您的文件名(63秒或64分钟)不匹配,因此根据您使用的ProcDump版本,您应该

a)报告错误,如果它是当前版本

b)升级到更新版本

另一个,也许不太可能的情况是文件名像这样作为ProcDump的参数传递。由于ProcDump将命令行参数作为注释写入转储文件,因此只需在WinDbg中打开转储并阅读注释即可。它看起来与此相似:

Comment: '
*** procdump.exe  -e 1 -f "" -ma -x test.dmp Debug\SimpleCppCrash.exe
*** Unhandled exception: E06D7363.?AVexception@std@@'