首页
社区
课程
招聘
[原创]双机内核调试 101
发表于: 2020-3-12 23:08 7035

[原创]双机内核调试 101

2020-3-12 23:08
7035

标题中的101请参阅https://en.wikipedia.org/wiki/101_(topic)。

我们在上一篇文章——本地内核调试环境搭建,就这么简单!中总结了本地内核调试的开启方法。本地内核调试有很多限制(比如,不能执行.crash来让系统蓝屏,不能执行.dump保存转储,不能下断点 ……),双机内核调试完全没有这方面的限制,可以说是真正意义上的内核调试。

双机内核调试主要分两种情况:

不论被调试系统运行在虚拟机中,还是运行在另外一台物理机中,系统设置都是一样的。本文简单梳理了常用的内核调试设置方法及连接方法。

可以通过1394,串口(Pipe),USB2.0,USB3.0,网络等方式进行双机内核调试。我只使用过串口和网络在两台真实的物理机上进行双机内核调试,并没有使用过1394,USB2.0,USB3.0的方式。当被调试系统运行在虚拟机中的时候,我们可以使用Pipe和VirtualKD两种方式进行双机调试。

被调试系统设置:


温馨提示:

调试主机连接方法:


被调试系统设置:

调试主机连接方法:



说明:

内核调试支持的波特率有9600、19200、38400、57600和115200几种。数值越大,传输速率越大。我们通常选最大的115200。
关于波特率的介绍请参考百度百科:https://baike.baidu.com/item/%E6%B3%A2%E7%89%B9%E7%8E%87/2153185

当被调试的系统在虚拟机中时,我们可以通过命名管道模拟串口来进行双机内核调试。

被调试系统设置:(和串口一样)

调试主机连接方法:


简单介绍下相关参数:

1394:我机器上没有1394端口,所以没有实际尝试过。

usb2.0:要求使用 0 号端口。而且对数据线也有要求:一般的usb2.0的数据线不行,因为需要同时连接两台物理机。没尝试过。

usb3.0:需要买专用的线,或者制作特殊的线,之前工作电脑上还没有usb3.0的接口,所以也没尝试过。强烈推荐大家参考张银奎老师的文章:http://advdbg.org/blogs/advdbg_system/articles/5954.aspx。看的我手又痒痒了。:)

eXDI:请参考张银奎老师的文章:http://advdbg.org/blogs/advdbg_system/articles/903.aspx。

因为以上几种形式我没实战过,就不搬文档了。而且,设置起来不算复杂。如果有需要,请参考官方文档https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-kernel-mode-debugging-in-windbg--cdb--or-ntsd。

做好设置后,在开始搭建物理环境前,我们需要确保设置正确。我们可以执行bcdedit /enum {ID}来检查对应启动项是否开启了Debug,并且执行bcdedit /dbgsettings来检查当前设置的参数是正确的。下图是我设置内核调试方式为网络的截图:

我通过网络串口两种方式成功的进行过双机内核调试。

网络:不需要做特殊设置。但是需要注意以下几点:

串口:需要制作特殊的线,一般的串口线不行。当时买了一根,找了同学帮忙焊了下,成功的连上了。串口线连接方法,请参考https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-null-modem-cable-connection。


我通过Pipe和VirtualKD两种方式成功的进行过双机内核调试。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 2
支持
分享
最新回复 (5)
雪    币: 83
活跃值: (1087)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
感谢学习了
2020-3-13 00:46
0
雪    币: 2510
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2020-3-13 18:01
1
雪    币: 283
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
很棒,比百度的简洁多了。我设置成功了,但是还是调试不了。我用的win10专业版去调试虚拟机中的win10家庭版,用的网络调试
2020-6-15 12:09
0
雪    币: 283
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
刚才重启了一下,可以调试了。谢谢
2020-6-15 12:20
0
雪    币: 35
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢分享!
2020-7-31 17:16
1
游客
登录 | 注册 方可回帖
返回
//