社区
其它技术问题
帖子详情
如何用WINDBG调试WINDOWS服务程序
zyq5945
2009-04-20 11:22:15
如何用WINDBG调试WINDOWS服务程序,网上看了下都是attach服务进程的,我想要的是在WINDBG里启动服务进程,并查看用OutputDebugString打印的调试信.息.在VC里启动StartServiceCtrlDispatcher总是返回FALSE.
...全文
907
15
打赏
收藏
如何用WINDBG调试WINDOWS服务程序
如何用WINDBG调试WINDOWS服务程序,网上看了下都是attach服务进程的,我想要的是在WINDBG里启动服务进程,并查看用OutputDebugString打印的调试信.息.在VC里启动StartServiceCtrlDispatcher总是返回FALSE.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zyq5945
2010-01-03
打赏
举报
回复
API:OutputDebugString+DebugView搞定了.
ray_zhang_3
2009-11-06
打赏
举报
回复
顶
hqgcxyyl
2009-09-01
打赏
举报
回复
顶!!!!
liliangbao
2009-04-22
打赏
举报
回复
帮顶了!!!
zyq5945
2009-04-22
打赏
举报
回复
顶起~~~~~~`
zyq5945
2009-04-21
打赏
举报
回复
最近学习做服务,看到他们的debug文件可以很全,所以也想试下
Module Load: WinDebug/NTService.exe (symbol loading deferred)
Thread Create: Process=0, Thread=0
Module Load: C:\NT351\system32\NTDLL.DLL (symbol loading deferred)
Module Load: C:\NT351\system32\KERNEL32.DLL (symbol loading deferred)
Module Load: C:\NT351\system32\ADVAPI32.DLL (symbol loading deferred)
Module Load: C:\NT351\system32\RPCRT4.DLL (symbol loading deferred)
Thread Create: Process=0, Thread=1
*** WARNING: symbols checksum is wrong 0x0005830f 0x0005224f for C:\NT351\symbols\dll\NTDLL.DBG
Module Load: C:\NT351\symbols\dll\NTDLL.DBG (symbols loaded)
Thread Terminate: Process=0, Thread=1, Exit Code=0
Hard coded breakpoint hit
Hard coded breakpoint hit
[](130): CNTService::CNTService()
Module Load: C:\NT351\SYSTEM32\RPCLTC1.DLL (symbol loading deferred)
[NT Service Demonstration](130): Calling StartServiceCtrlDispatcher()
Thread Create: Process=0, Thread=2
[NT Service Demonstration](174): Entering CNTService::ServiceMain()
[NT Service Demonstration](174): Entering CNTService::Initialize()
[NT Service Demonstration](174): CNTService::SetStatus(3026680, 2)
[NT Service Demonstration](174): Sleeping...
[NT Service Demonstration](174): CNTService::SetStatus(3026680, 4)
[NT Service Demonstration](174): Entering CNTService::Run()
[NT Service Demonstration](174): Sleeping...
[NT Service Demonstration](174): Sleeping...
[NT Service Demonstration](174): Sleeping...
[NT Service Demonstration](130): CNTService::Handler(1)
[NT Service Demonstration](130): Entering CNTService::Stop()
[NT Service Demonstration](130): CNTService::SetStatus(3026680, 3)
[NT Service Demonstration](130): Leaving CNTService::Stop()
[NT Service Demonstration](130): Updating status (3026680, 3)
[NT Service Demonstration](174): Leaving CNTService::Run()
[NT Service Demonstration](174): Leaving CNTService::Initialize()
[NT Service Demonstration](174): Leaving CNTService::ServiceMain()
[NT Service Demonstration](174): CNTService::SetStatus(3026680, 1)
Thread Terminate: Process=0, Thread=2, Exit Code=0
[NT Service Demonstration](130): Returned from StartServiceCtrlDispatcher()
Module Unload: WinDebug/NTService.exe
Module Unload: C:\NT351\system32\NTDLL.DLL
Module Unload: C:\NT351\system32\KERNEL32.DLL
Module Unload: C:\NT351\system32\ADVAPI32.DLL
Module Unload: C:\NT351\system32\RPCRT4.DLL
Module Unload: C:\NT351\SYSTEM32\RPCLTC1.DLL
Thread Terminate: Process=0, Thread=0, Exit Code=0
Process Terminate: Process=0, Exit Code=0
>
小y正在思考人生
2009-04-21
打赏
举报
回复
帮顶
morris88
2009-04-21
打赏
举报
回复
Windbg可以用于如下三种调试:
远程调试:你可以从机器A上调试在机器B上执行的程序。具体步骤如下:? 在机器B上启动一个调试窗口(Debug Session)。你可以直接在Windbg下运行一个程序或者将Windbg附加(Attach)到一个进程。
? 在机器B的Windbg命令窗口上启动一个远程调试接口(remote):
.server npipe:pipe=PIPE_NAME
PIPE_NAME是该接口的名字。
? 在机器A上运行:
windbg –remote npipe:server=SERVER_NAME,pipe=PIPE_NAME
SERVER_NAME是机器B的名字。
Dump文件调试:如果在你的客户的机器上出现问题,你可能不能使用远程调试来解决问题。你可以要求你的用户将Windbg附加到出现问题的进程上,然后在命令窗口中输入:.dump /ma File Name
创建一个Dump文件。在得到Dump文件后,使用如下的命令来打开它:
windbg –z DUMP_FILE_NAME
本地进程调试:你可以在Windbg下直接运行一个程序:Windbg “path to executable” arguments
也可以将Windbg附加到一个正在运行的程序:
Windbg –p “process id”
Windbg –pn “process name”
注意有一种非侵入(Noninvasive)模式可以用来检查一个进程的状态并不进程的执行。当然在这种模式下无法控制被调试程序的执行。这种模式也可以用于查看一个已经在Debugger控制下运行的进程。具体命令如下:
Windbg –pv –p “process id”
Windbg –pv –pn “process name”
zyq5945
2009-04-21
打赏
举报
回复
顶下~~~~~~~~
zyq5945
2009-04-20
打赏
举报
回复
[Quote=引用 2 楼 hairetz 的回复:]
http://blog.csdn.net/bravechou/archive/2009/02/12/3880984.aspx
调试 Windows 服务使用 WinDbg 调试器 (windbg.exe)。
[/Quote]
不是这个,我想问的是如何在windbg中看服务启动加载的过程的调试信息,不是附加进程.
zyq5945
2009-04-20
打赏
举报
回复
up~~~
mengde007
2009-04-20
打赏
举报
回复
帮顶了……
猫已经找不回了
2009-04-20
打赏
举报
回复
http://blog.csdn.net/bravechou/archive/2009/02/12/3880984.aspx
调试 Windows 服务使用 WinDbg 调试器 (windbg.exe)。
coverallwangp
2009-04-20
打赏
举报
回复
帮顶
xiaopoy
2009-04-20
打赏
举报
回复
dbgview
还没安装windbg,记忆中是在一个view窗口看的。
WinDbg
调试
程序崩溃操作详解
作者有10多年编程,
调试
经验,详解关于
Windows
平台下程序崩溃的
Windbg
调试
方法及技巧;附带工具介绍 适合于分析C++等语言, .Net 平台等快速入门及提高
使用
WinDbg
和虚拟机
调试
Windows
驱动程序.pdf
这是一个用来
windbg
调试
Windows
驱动程序的文档,很值得大家观看.
Windows
调试
程序 (
WinDbg
)
Windows
调试
程序 (
WinDbg
) 可用于
调试
内核模式和用户模式代码、分析故障转储以及在代码执行时检查 CPU 寄存器。
WINDBG
调试
工具
用
windows
程序
调试
跟踪解决bug的好帮手
windows
调试
工具(
windbg
KD CDB NTSD)实例详细介绍.pdf
windbg
调试
工具详解,非常全面的讲解了
windbg
工具的原理使用以及命令,每个命令都附有详细实例介绍,是快速入门提高
windbg
调试
windows
程序的一本利器。
其它技术问题
3,881
社区成员
9,054
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章