运维开发网

macos – 通过网络设置双机内核调试

运维开发网 https://www.qedev.com 2020-05-29 13:20 出处:网络 作者:运维开发网整理
我想检查调试安装在远程物理机器上的内核驱动程序的选项(因为我没有火线电缆).阅读相关文档,我没有看到任何关于远程物理调试介质的限制,所以我推断火线电缆和IP无线网络应该工作. 我认为lldb远程连接使用kdp-remote< machine-ip>会做的伎俩,但我没有得到任何回应. 但是,从远程VM,即使VM可以位于远程物理机上,它也会成功. 我的boot-args配置是keepsyms = 1
我想检查调试安装在远程物理机器上的内核驱动程序的选项(因为我没有火线电缆).阅读相关文档,我没有看到任何关于远程物理调试介质的限制,所以我推断火线电缆和IP无线网络应该工作.

我认为lldb远程连接使用kdp-remote< machine-ip>会做的伎俩,但我没有得到任何回应.

但是,从远程VM,即使VM可以位于远程物理机上,它也会成功.

我的boot-args配置是keepsyms = 1 debug = 0x144 -v

我们在评论中找到了问题(下面的第2项),但对于后人,这里有一个列表,要检查xnu内核调试是否不起作用:

>目标计算机必须具有通过PCIe或Thunderbolt连接的物理以太网端口,或者必须使用直接火线连接(可选择通过Thunderbolt). USB到以太网适配器无法在目标端运行.客户端机器不那么繁琐,你可以在那里使用wifi或USB以太网.

>协议使用UDP,而不是TCP.您是否在lldb计算机上运行了可能阻止UDP数据包的防火墙? (您可以尝试使用nc(netcat)工具将udp数据包从目标发送到客户端,同时机器不会崩溃.)

>客户端计算机上的ARP条目是否正确? arp< target ip>应该产生目标接口的MAC地址.

>崩溃的Mac不会响应ping,只会通过UDP响应KDP数据包.因此,没有回来并没有任何意义.

>据我所知,机器在崩溃时不会请求新的DHCP租约,因此不应该出现问题,但您可以随时尝试设置静态IP地址.

>设置boot-args后你重新启动了吗?它们只对新靴子生效.

>如果SIP处于活动状态,则只能从OS X / macOS 10.11开始从恢复环境设置nvram变量.您可以运行nvram boot-args来验证设置是否卡住了.

我个人的建议是尽可能使用FireWire进行内核调试,这似乎是我体验中最快,最可靠的.

0

精彩评论

暂无评论...
验证码 换一张
取 消