有没有人知道它是否可能/如何使用ProcDump来获取Windows服务的转储?我想要运行的命令是这样的:
ProcDump -e -mp -x myservice.exe mydump.dmp
但是我从命令行或调试器消息中得到无法启动服务。有没有人知道是否有解决方法?
答案 0 :(得分:2)
确定在我玩了一下之后我发现了如何做到这一点,我需要的命令是:Procdump -e -mp 14312 mydump.dmp其中14312是服务的进程ID,你可以在任务管理器中找到它在服务标签中。
答案 1 :(得分:2)
万一有人遇到这种情况,我通常会运行:
procdump.exe -ma -i C:\Dumps
这会将procdump注册为即时(AeDebug)调试器,并应为系统上的任何崩溃进程创建一个转储。
与为特定进程名称或PID配置转储相比,“发现广域网”产生了更好的结果。
答案 2 :(得分:0)
还有另一个选项,即使在Windows服务启动时,也可以转储异常。借助"Image File Execution Options",您可以在服务调试器时配置procdump。
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
别忘了用您的值替换大括号。 请检查procdump命令行参数-ma,-e 1,-t,-n 10 here
的含义。要卸载procdump:
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\{your service executable name. f.e. notepad.exe}" /v "Debugger" /t REG_SZ /d "{procdump path}\procdump -ma -accepteula -e 1 -t -n 10 -x {dumps output folder}" /f