2017-06-21 107 views

回答

1

我不知道如何直接從kext打印符號化堆棧跟蹤。通過將keepsyms=1添加到boot-args nvram變量,您可以獲得符號化的恐慌日誌。我懷疑這個數據結構有私人鏈接,所以你可能無法在你自己的kext中複製符號化的恐慌代碼。 (這是在XNU源的osfmk/i386/AT386/model_dep.c但如果你想嘗試。)

你的另一個選擇是通過atos命令行工具從OSReportWithBacktrace發送輸出。對於kext符號,您需要從kextstat中找到kext的加載地址,並將其傳遞給-l命令行參數。

最後,您當然可以使用lldb內核調試來獲取堆棧跟蹤。如果您需要在早期kext加載期間設置斷點,則在您有機會從lldb命令行執行該操作之前,可以在代碼中要插入調試程序的位置插入__asm__("int $3")(IIRC)。

相關問題