首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生产时间调试-会话0进程

生产时间调试-会话0进程
EN

Stack Overflow用户
提问于 2011-09-20 04:38:11
回答 4查看 2.7K关注 0票数 1

我有以下情况:

  • Windows 2008
  • 使用特定用户凭据(即不是系统帐户)运行的服务。
  • 该服务启动子进程。
  • 子进程启动,一秒钟后获得一个异常,然后崩溃。

我正在尝试将调试器附加到子进程,并在子进程崩溃前对其进行调试。

我试图使用g阻隔并设置调试器。问题是服务在会话0中运行,因此Windbg不可查看。我不能将服务设置为“允许与桌面交互”,因为服务不能使用本地系统帐户,而是必须使用特定用户的凭据。

我不确定它是否打算那样工作,但我也尝试使用windbg -pe从Windbg的另一个实例连接到会话0中的Windbg (因此我将运行两个Windbg )。但是它不起作用--第二个实例似乎无法停止进程并查看其调用堆栈。

有什么想法吗?在子进程崩溃调试之前,如何将调试器附加到子进程?

EN

回答 4

Stack Overflow用户

发布于 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

票数 3
EN

Stack Overflow用户

发布于 2011-09-20 06:25:00

还有一种选择:

当WinDbg自动启动时,您确实看不到它。但是,您可以将ntsd配置为您的jit调试器,并启用远程调试。然后,您可以将WinDbg连接到ntsd并远程调试进程。详见:在Windows上调试服务

票数 1
EN

Stack Overflow用户

发布于 2011-09-20 05:54:33

为什么不从崩溃转储开始呢?http://www.codeproject.com/KB/debug/automemorydump.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7480210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档