调试windows service程序有什么好办法

crescent2000 2003-12-10 05:51:38
不知这个问题放在这里是否合适
能否在ide的调试器中实现单步跟踪?
...全文
29 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
2i3i4i 2003-12-12
  • 打赏
  • 举报
回复
先把要实现的功能做成EXE,调试完成后, 再一次性转入SERVICE模板。

因为Service里面不能弹出对话框,你也可以在Service里面要调试的地方用OutputDebugString("")输出要调试的变量的信息。OutputDebugString("")可以用DebugView(Dbgview.exe)来接收。
modena 2003-12-12
  • 打赏
  • 举报
回复
在InitInstance中直接调用服务的ServiceMain(NULL, 0);
然后按F5就可以调试了
bager 2003-12-12
  • 打赏
  • 举报
回复
你可以试一下这个方法:
1、ServiceMain函数起始处添加ASSERT(0);语句

inline void CXXX::ServiceMain(DWORD /* dwArgc */, LPTSTR* /* lpszArgv */)
{
ASSERT(0);
//...

}
2、编译DEBUG版本的服务程序,注册服务并启动。此时将显示Debug Assertion Failed调试信息对话框
3、启动任务管理器,从中选择你的服务进程,右击选择调试。在弹出的警告对话框中点击“YES”按钮。此时系统将启动MSDEV.exe
4、在Debug Assertion Failed调试信息对话框中点击“重试”按钮,执行断点将显示在 ASSERT(0);语句处。
至此,F10、F11随便按吧。

如果服务程序提供对外的接口,调试它就更容易了。(像调DLL一样,从接口函数进入即可)


2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧