浅谈Windows上调试服务程序

浅谈Windows上调试服务程序一 先来看微软官方解释 https docs microsoft

欢迎大家来到IT世界,在知识的湖畔探索吧!

一、先来看微软官方解释

https://docs.microsoft.com/en-us/windows/win32/services/debugging-a-service

1) 服务程序运行后,使用调试器attach上进行调试

2) 代码中嵌入Debugbreak()函数,开发环境中运行后自动调用即时调试器

3) Image File Execution Options注册表大法,Vista后不支持,因为session的原因

4) 使用Event tracing机制即ETW记录日志

5) 某些时候,可以用控制台方式来运行服务(做参数切换)来方便调试

二、如果一定要用调试器调试以服务方式运行的服务入口,可以试试这个

1) 安装windbg,并找到目录

2) 先停止你的服务(比如sc stop xxxx)

3) 找到Image File Execution Options注册表键,创建debugger的值如下(注意windbg的安装目录及PDB路径要改成你自己的)

C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe -server tcp:port=9999 -c -pt 600 -y “srv*c:\symbols*http://msdl.microsoft.com/download/symbols;e:\your_pdb_path” 

欢迎大家来到IT世界,在知识的湖畔探索吧!

4) 启动服务(比如Sc start xxxx)

5) 打开windbg.exe,选择File->Connect to remote session…,在弹出的对话框中输入:

tcp:port=9999

然后点connect

6) Windbg就会断到你的service进程中, 然后你可以设置断点进行调试了


免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/78369.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信