我在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),所以我使用以下适配器来调试远程机器:
- https://www.apple.com/shop/product/MMEL2AM/A/thunderbolt-3-usb-c-to-thunderbolt-2-adapter
- https://www.apple.com/shop/product/MD463LL/A/thunderbolt-to-gigabit-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
任何关于问题可能是什么的想法都会有所帮助