内容转自我的博客
1. 准备
1.1 说明
1.1.1 请先阅读官网文件 参考[2],手动配置kdnet双机调试,这是被官方他推荐的一种方法,许多旧机器也适用,稳定性更好,就是启动速度比较慢
1.1.2 需要注意 如果不考虑 本地单机内核调试(很多命令不能用), 进行双机内核调试都必须要物理连接
- 被调试的机器叫被调试机(target computer/server),我习惯称之为target机
- 使用调试器的机器叫调试机(host computer/client),我习惯称之为host机
1.2 材料准备
target机:win10 ltsc
host机:win10 专业版
普通网线一根
我使用的是两台笔记本,并且没有连接有线网络
2. 注意事项
2.1 连接方式
看了上面这个图,我迷迷糊糊买了一条网线把两台计算机连接起来
但如果你仔细观察就会发现区别
ethernet cable不是直连(direct cable)
糟糕的是,我们要确保两台电脑位于同一个局域网下,无线网卡不在支持列表里面(我们需要使用target机的以太网卡),所以我们要准备集线器或者交换机和网线若干,采用原始的办法将pc进行连接组网
2.2 共享网络,组建局域网
幸运的是,win10为我们提供了网络共享功能,并且很多电脑网卡之间也可以直接使用直通线连接
我们只需要通过更改适配器选项,找到无线网卡,右键选择属性,共享,勾选允许即可
两台机器上的网络适配如图所示
以上是通过更改适配器选项看到的网络状态,重启之前你看到是支持调试的以太网已连接(我的是瑞昱8168)
通过设备管理器可以看到原来的以太网卡驱动已经变得不可用了,而多了一个内核调试适配器
3. 调试信息
3.1 系统版本
查看系统版本,win+R,输入winvir
3.2 获取以太网厂商号和设备号
一般都支持,注意网线调试与target机的无线网卡没有任何关系,也不要使用它
- 设备管理器
- 选择以太网的网络适配器,通常含有pcie或者ethernet字样
- 属性>详细信息>硬件id
- 查看vendor和device的id
根据系统版本,查看参考3,看网卡是否在支持列表里面
3.3 查看总线参数
设备管理器=>Realtek PCIe GbE Family Controller(你的以太网卡)
=>属性=>常规=>位置=>即可查看三个参数
4. 开工
4.1 在target机powershell上输入
bcdedit /debug on
//设置host主机ip和端口
bcdedit /dbgsettings net hostip:w.x.y.z port:n//得到一个key
bcdedit /set "{dbgsettings}" busparams b.d.f
shutdown -r -t 0//重启
可以添加参数key:1.1.1.1来得到固定的key
4.2 在host主机上打开windbg
kernel debug>net>输入key和端口
再次重启target机
看到debugee is running,按下ctrl+break/ctrl+fn+B断下来
5. 后记
4.1 区别windbg远程调试与网线双机调试
远程调试相当于两个windbg建立连接,host机远程使用windbg,在客户端输入命令,服务端和客户端都会显示输出,但是内核调试时target机在启动时就应该是能被挂起的,所以远程调试并不算双机内核调试
windbg网络调试步骤
1. windbg -server tcp:port=50011 //在被调试机powershell中输入
2. windbg -remote tcp:Port=50011,Server=192.168.0.101//调试机powershell输入
更新
1.注意关闭防火墙
2.共享wifi只是一种可行的方法,后来发现只要保证两台机器的以太网卡可以ping通就可以了