0

我使用以下命令设置 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

4

2 回答 2

3

文档

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

所以对于这个例子:

MyProcess.exe_150422_041763.dmp

这是:

process name: MyProcess.exe

date: 2015 April 22

time: 041763

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

于 2016-05-11T15:56:36.940 回答
1

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

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@@'
于 2016-05-11T17:24:31.103 回答