我有以下情况:
我正在尝试将调试器附加到子进程,并在子进程崩溃前对其进行调试。
我试图使用g阻隔并设置调试器。问题是服务在会话0中运行,因此Windbg不可查看。我不能将服务设置为“允许与桌面交互”,因为服务不能使用本地系统帐户,而是必须使用特定用户的凭据。
我不确定它是否打算那样工作,但我也尝试使用windbg -pe从Windbg的另一个实例连接到会话0中的Windbg (因此我将运行两个Windbg )。但是它不起作用--第二个实例似乎无法停止进程并查看其调用堆栈。
有什么想法吗?在子进程崩溃调试之前,如何将调试器附加到子进程?
发布于 2011-09-20 10:11:23
为此,可以使用命令行调试器cdb。使用附加的cdb启动服务,并作为调试服务器启动。可以添加以下命令
“c:\程序文件\windows\cdb调试工具”-server tcp:port=5500 -g -G
到注册表项的注册表值调试器(类型字符串)。
HKLM\Software\Microsoft\Windows \CurrentVersion\图像文件执行Options\YourApplication.Exe
然后使用windbg连接到
-remote tcp:server=localhost,port=5500
发布于 2011-09-20 06:25:00
还有一种选择:
当WinDbg自动启动时,您确实看不到它。但是,您可以将ntsd配置为您的jit调试器,并启用远程调试。然后,您可以将WinDbg连接到ntsd并远程调试进程。详见:在Windows上调试服务。
发布于 2011-09-20 05:54:33
为什么不从崩溃转储开始呢?http://www.codeproject.com/KB/debug/automemorydump.aspx
https://stackoverflow.com/questions/7480210
复制相似问题