Service 使用ProcDump获取服务的转储?

Service 使用ProcDump获取服务的转储?,service,windows-services,procdump,Service,Windows Services,Procdump,有人知道是否可能/如何使用ProcDump获得windows服务的转储吗?我要运行的命令如下所示: ProcDump -e -mp -x myservice.exe mydump.dmp 但是,我从命令行或调试器中得到无法启动服务的消息。有人知道有没有办法解决这个问题吗?好的,在我仔细研究了一下如何解决这个问题之后,我需要的命令是:Procdump-e-mp 14312 mydump.dmp其中14312是服务的进程id,您可以在“服务”选项卡的“任务管理器”中找到它。如果有人遇到这个问题,我

有人知道是否可能/如何使用ProcDump获得windows服务的转储吗?我要运行的命令如下所示:

ProcDump -e -mp -x myservice.exe mydump.dmp

但是,我从命令行或调试器中得到无法启动服务的消息。有人知道有没有办法解决这个问题吗?

好的,在我仔细研究了一下如何解决这个问题之后,我需要的命令是:Procdump-e-mp 14312 mydump.dmp其中14312是服务的进程id,您可以在“服务”选项卡的“任务管理器”中找到它。

如果有人遇到这个问题,我通常会运行:

procdump.exe -ma -i C:\Dumps
这将注册procdump作为实时(AeDebug)调试器,并应为系统上的任何崩溃进程创建转储


我发现,与为特定进程名或PID配置转储相比,“撒网”会产生更好的结果。

还有另一个选项允许您在windows服务启动时转储异常。在的帮助下,您可以在服务调试器时配置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
别忘了用你的值替换花括号。 请检查procdump命令行参数-ma,-e1,-t,-n10的含义

要卸载procdump,请执行以下操作:

reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\{your service executable name. f.e. notepad.exe}" /va /f

好的,在我研究了一下如何做之后,我需要的命令是:Procdump-e-mp 14312 mydump.dmp,其中14312是服务的进程id,您可以在“服务”选项卡的“任务管理器”中找到它。我想问同样的问题,但不幸的是,答案对我没有帮助。服务在启动后立即崩溃,此时调用
Procdump-e-mp 14312 mydump.dmp
为时已晚。还有其他选择吗?您可以在代码中编写sleep,让可执行文件等待,直到可以附加procdump。