- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WinDBG+VMware=调试内核
2008-07-14 20:40
呵呵,搞点突兀的标题而已。其实说的还是如何使用WinDBG和VMware来搭建调试内核的环境而已,这些网上已经有数不清的教程了,不过我喜欢自己亲手写一下。第一,把这个过程写一遍能加深印象,就算以后忘记了也可以有笔记查找,快速想起来。第二、网上的教程很多都是互相抄来抄去,连错误也抄过去了。很典型一个错误就是Baud Rate,前面还写115200,后面就写成了11520了,狂汗!
按照我这篇笔记写的步骤去做,绝对能够成功,并且还能大略地了解到为什么要这样做的原因。第1部分是步骤,如果不想看原因的,直接按部照搬就可以成功。如果还想深入点了解为什么要做这些步骤,这些步骤的含义是什么?那就请继续看第二部分。
第一部分(步骤):
先统一名称,真实的操作系统叫HostOS,在VMware里虚拟的操作系统叫GuestOS。
1.在VMware里安装好GuestOS;下载WinDBG并安装好。
2.添加一个串口
在关闭GuestOS的情况下才能添加硬件。添加串口的过程如下:
选择“串行端口”,
选择“输出命名管道”,
其他如下设置:
3.在GuestOS的boot.ini文件里填入如下内容:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=Microsoft Windows XP Professional Debug /fastdetect /debugport=com1 /baudrate=115200
如图:
4.创建一个WinDBG的快捷方式,在“目标”一栏后面加上:
-b -k com:pipe,port=\\.\pipe\com_1,resets=0
如图:
5.重启GuestOS,选择Debug模式。
6.双击第4步创建的那个快捷方式启动WinDBG,它会自动去连接调试GuestOS。
可以看到,已经成功了,现在可以尽情地调试内核了。
第二部分(解说):
原理就是VMware在GuestOS虚拟一个COM口,并在HostOS创建了一个管道,这个管道的一端连接GuestOS的COM口,另一端则是WinDBG,所以HostOS(WinDBG)和GuestOS的所有数据交换都是通过这个管道来流通转发的。
1.我的电脑没有COM口,所以不能搭建调试环境?
不是的,你的电脑有没有COM口与这个调试环境没有任何关系,整个过程根本没有使用到你电脑的物理COM口。VMware只是在GuestOS虚拟了一个COM口而已。
2.在创建串口(COM口属于串口的一种)的过程中,看到指定的管道为“\\.\pipe\com_1”,我可以指定为其他吗?
可以的。这只是指定一个管道名字而已,VMware用这个名字来创建一个命名管道。我完全可以改成“\\.\pipe\liangyu”、“\\.\pipe\aaa”等等,但记得要把WinDBG的快捷方式处的管道名字更改为一样。
3.我可以在GuestOS的boot.ini文件更改那个COM口吗?比如把COM1改为COM2?
不可以的,VMware会把虚拟出的这个COM口总是定义为com1。GuestOS的其他COM口都得让位。
4.看到很多教程都说到要勾选“I/O模式”,如图:
一定要勾选吗?
这个勾选不勾选都可以,我没发现有什么大的区别。
5.在更改GuestOS的boot.ini文件的时候,增加有“/debugport=com1 /baudrate=115200”这些内容,含义是?
使用的调试端口是com1,波特率是115200。这是在告诉GuestOS现在要调试内核(操作系统),把调试信息往COM1口输出,使用的波特率是115200。我在试验的时候发现,这个波特率其实也不一定要设为115200,完全可以修改为112233、445566等等其他数据。可能是因为WinDBG自动调节波特率来适配管道或COM口,所以波特率在这里没有实际意义。
6.WinDBG的快捷方式那里添加了“-b -k com:pipe,port=\\.\pipe\com_1,resets=0”这些内容,含义是?
大概意思就是使用管道“\\.\pipe\com_1”来进行内核调试。各个参数的说明在WinDBG的参考文档里面有,这里粘贴一下:
-b
(Kernel mode only) This option has two effects:
1. The debugger will break into the target computer immediately upon connection.
2. After a reboot, the debugger will break into the target compute
您可能关注的文档
最近下载
- 老友记台词剧本第一季第1集中英双语左右对照.pdf VIP
- 2025年5月18日河南省事业单位联考《公共基础知识》试题及答案解析.pdf
- 2018年最新发布的ISO50001-2018能源管理体系标准条款中英文版..pdf VIP
- 中欧班列“齐鲁号”跨境物流供应链金融模式研究.pdf VIP
- 运动心理学PPT完整全套教学课件.pptx VIP
- 七年级历史数字故事——隋朝大运河课件.ppt VIP
- 旅游职业礼仪-全套PPT课件.pptx
- 2025人教版数学三年级上册全册教学课件.ppt
- 居民健康档案知识培训课件.pptx VIP
- 2025年秋季人教版7年级上册数学全册教学课件(新教材).pptx
文档评论(0)