内核调试两个物理 MacBook pro 设备

逆向工程 调试 核心 数据库 苹果系统
2021-06-11 13:56:06

我在stackoverflow 上问过同样的问题,但我会在这里复制粘贴它,因为我可能会得到更多相关的答案(?):

我正在尝试内核调试物理 Macbook pro 设备。当我的设置包含一个 VM 时,在主机 MacOS 和来宾 MacOS 之间,它使用起来没有问题lldb -o "kdp-remote <guest_machine_ip>"

我的远程(调试)Macbook 上的引导参数是:

user$ nvram boot-args
boot-args       debug=0x44 kext-dev-mode=1 pmuflags=1 -v kcsuffix=debug

当我使用sudo dtrace -w -n "BEGIN { breakpoint(); }"触发内核调试时 LEFT CMD + RIGHT CMD + PowerButton,系统处于暂停模式,不响应任何事情(鼠标不动等)但是当我尝试使用前面提供的 lldb 命令从主机连接到机器时,它不工作。我已经确保机器可以互相 ping 通,并且我可以设置 SSH 连接。

据我所知,我不得不使用特殊的 Apple 适配器 ( Real™ Ethernet adapter),所以我使用以下适配器来调试远程机器:

物理连接设置如下所示:

MacOS-Debugger --(USBC to Ethernet adapter)--> Ethernet cable <-- (ThunderBolt to Ethernet adapter) <-- (ThunderBolt3 to ThunderBolt2 adapter) <-- MacOS-debuggee

通常对于调试,我使用了以下教程,该教程适用于 VM 调试: https://knight.sc/debugging/2018/08/15/macos-kernel-debugging.html,我没有找到确切的 KDK 版本,但我认为这不应该是这里的问题

我的调试器是BigSur我的调试器Catalina

任何关于问题可能是什么的想法都会有所帮助

1个回答

所以原始帖子中有一个答案,但我缺少的是我将在其中附加调试器的接口,boot-args 所以我必须添加kdp_match_name=en24en24机器正在通信的物理接口在哪里

只需在此处添加答案,因为它可能会在将来对某人有所帮助