龙空技术网

在Parallels Desktop上配置双机内核调试

不会翻白眼的小白 63

前言:

现时兄弟们对“windows内核调试教程”大体比较讲究,咱们都需要知道一些“windows内核调试教程”的相关内容。那么小编在网上汇集了一些有关“windows内核调试教程””的相关文章,希望我们能喜欢,朋友们一起来学习一下吧!

Windows内核开发,调试时会造成整个操作系统中断卡死,需要双机做调试。Parallels Desktop是Mac os上最受欢迎的虚拟机,我想试试在PD搭建Windows内核开发的调试环境。经过努力,成功实现了Windows内核调试环境的搭建。过程中遇到比较大的坑,特此记录。

0x01 为什么要用串口对接?

试了下用网络对接,显示不支持网卡:

也尝试过用VirtualBox的网卡,打算做异构调试,网卡检查,一样的结果,只能作罢,转向用串口对接。

0x02 目标机器上的配置虚拟机配置解锁添加串口选择串口添加插口(名字随意起)选择客户端模式操作系统配置

用管理员启动PowerShell,设置调试模式、串口和波特率:

bcdedit /debug onbcdedit /dbgsettings serial debugport:1 baudrate:115200

此时如果重启,重启后在设备管理看不到串口设备:

0x03 主机上的配置虚拟机配置

和目标机器的配置基本一样,注意两个点:

插口名字两边一致模式为服务器

操作系统配置

开机后,在设备管理中看到串口设备:

设置波特率:

用管理员账号启动PowerShell,用它启动Windbg:

PS C:\Program Files (x86)\Windows Kits\10\Debuggers\x64> .\windbg.exe -k com:port=com1,baud=115200

等待连接:

0x04 开机

主机处于等待连接状态时,目标机器开机或重新开机:

此时主机上windbg会有反应:

目标机器则处在半卡死状态。

继续等待……

连接成功了:

0x05 后记

最初想用网络对接,《Windows内核编程》(Windows Kernel Programming)这本书也是推荐网络连接,无奈网卡不支持。试了很多遍,macbook pro慢,加上pd也慢,中间还试过virtualbox(这个家伙更慢),在上面安装操作系统等各种操作,这个来环节前后花了大几个小时。

配串口时,我没理解Pd的“模式”,加上bcdedit /debug on后目标机器串口不见,且开机提示串口被占用无法连接,有一定误导,在这个环节又花了几个小时。

我把过程中比较有歧义的、耗时的点做了标注,希望对有需要的人有所帮助。

标签: #windows内核调试教程