【发布时间】:2013-03-28 15:47:54
【问题描述】:
我有 I/O Kit 驱动程序:虚拟以太网设备。经过一段时间的工作操作系统挂起,所以看起来我的驱动程序出现了一些死锁。
我已经完成了接下来的步骤:
- 通过 FireWire 连接两台 macbook
- 设置调试环境
- 初始化 NMI(通过电源按钮)
- 通过 gdb 连接到目标
- 获取我的 kext 的地址
- 创建和加载符号(这是我读过的所有文档中的最后一点)
到目前为止一切顺利。如果发生内核恐慌,这就足够了。 但是在我的情况下没有内核恐慌,我驻留在处理 NMI 的线程中。
现在的问题是:如何切换到我的 kext 的线程?
命令showalltasks 列出了所有任务,我的kext 可能正在运行的唯一任务是kernel_task,所以我试图通过showtaskthreads 和showtaskstacks 检查此任务,但找不到与我的代码类似的任何内容.我错过了什么吗?
如有任何建议或文档链接,我将不胜感激。
【问题讨论】:
标签: macos debugging gdb kernel kernel-extension