调试服务
可以使用以下任一方法调试服务。
在服务运行时使用调试器调试服务。 首先, (服务进程的 PID) 获取进程标识符。 获取 PID 后,附加到正在运行的进程。 有关语法信息,请参阅调试器附带的文档。
调用 DebugBreak 函数以调用调试器进行实时调试。
指定启动程序时要使用的调试器。 为此,请在以下注册表位置创建名为 “映像文件执行选项” 的项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
创建与服务同名的子项 (例如MYSERV.EXE) 。 在此子项中,添加名为 Debugger 的 REG_SZ 类型的值。 使用调试器的完整路径作为字符串值。 在“服务”控制面板小程序中,选择服务,单击“启动”,检查“允许服务与桌面交互”。 该服务必须是交互式服务,否则调试器无法在默认桌面上运行。 请注意,从 Windows Vista 开始,此方法不再受支持,因为所有服务都在专用于服务的会话中运行,不支持显示用户界面。
使用 事件跟踪 来记录信息。
若要调试自动启动服务的初始化代码,必须临时安装该服务并将其作为按需启动服务运行。
有时,出于调试目的,可能需要将服务作为控制台应用程序运行。 在此方案中, StartServiceCtrlDispatcher 函数将返回 ERROR_FAILED_SERVICE_CONTROLLER_CONNECT。 因此,请确保构建代码,以便返回此错误时不会调用特定于服务的代码。
相关主题