【发布时间】:2012-10-23 07:59:49
【问题描述】:
我正在使用 Xcode 在 Mac 上开发 KEXT,每次编译后我都通过终端更改权限并加载 KEXT,然后从控制台应用程序读取结果。开发中的一些错误使系统出现内核恐慌,我必须重新启动我的 mac,这太烦人了。我想知道是否有更好的方法来开发和调试 KEXT?
【问题讨论】:
标签: xcode macos debugging kernel-extension
我正在使用 Xcode 在 Mac 上开发 KEXT,每次编译后我都通过终端更改权限并加载 KEXT,然后从控制台应用程序读取结果。开发中的一些错误使系统出现内核恐慌,我必须重新启动我的 mac,这太烦人了。我想知道是否有更好的方法来开发和调试 KEXT?
【问题讨论】:
标签: xcode macos debugging kernel-extension
这个话题太大了,无法回答,但至少有据可查,请查看 Apple 提供的这些文档:
还请注意,您可以通过 Firewire(使用另一台 Mac 上的 fwkpfv 命令行实用程序)或串行端口(主要用于在 VM 中进行测试,因为现代 Mac 没有)从 kprintf() 记录调用中获取输出t 有串行端口)。 kprintf 是同步的,因此与 kernel.log 不同的是,即使它发生在崩溃之前,您也会看到调试输出。
【讨论】:
dmesg 似乎在我的电脑上显示了kprintf(和printf)的输出。不知道它是同步的还是什么,但即使你不知道如何让os_log 出现,它也能工作。