我正在使用 procdump 在进程崩溃时自动创建小型转储。它使用以下语法:
procdump64 -i
但是转储文件夹是
C:\Users\Administrator
,如何更改为C:\dumps
?
我尝试使用
procdump64 -j c:\dumps -i
但不起作用。
(这个问题发布已经有一段时间了,但值得回答)
(为了方便起见,我将使用
procdump
(而不是procdump64
)
从问题来看,这意味着执行以下操作应该可行(在OP的用例中,将转储写入
C:\Users\Administrator
):
procdump -i
...但至少在我看来,事实并非如此。
似乎必须指定应写入的转储的类型(“完整”(
-ma
)、“迷你”(-mm
)等)。只需执行procdump
即可列出转储类型。
回到问题,以下应该有效:
procdump -ma -i c:\dumps
请注意,如果目标文件夹需要管理员权限,这可能不起作用,即使
procdump
在以管理员身份运行的 cmd 下运行(这就是我经历过的)。
将 prodcump 重新定位为 AeDebug 工具
如果您只是运行
prodcump.exe -i
那么它会将转储写入 prodcump 安装的位置,通常在“C:\Program Files”某处,普通用户没有写访问权限。我的解决方案:
将其放入 .bat 文件中(并以管理员身份运行):
md C:\Temp\procdumps
cd C:\Temp\procdumps
@rem procdump must be registered FROM THE DIR WE WANT DUMPS TO BE WRITTEN TO.
"C:\Program Files\Sysinternals\procdump" /accepteula -i -ma C:\Temp\procdumps
实际上我不知道最后一个 C:\Temp\prodcumps 是否有什么区别。注册为AeDebug工具时似乎没有使用。
我的注册表变成:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
"UserDebuggerHotKey"=dword:00000000
"Auto"="1"
"Debugger"="\"C:\\Program Files\\Sysinternals\\procdump.exe\" -accepteula -ma -j \"C:\\Temp\\procdumps\" %ld %ld %p"