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