Kext 驱动找不到符号 OSPrintBacktrace

Kext driver cannot find symbol OSPrintBacktrace

当调用我的 iokit 命令之一时,我正在使用以下函数。它在

中定义
extern void OSPrintBacktrace(void);

然而,我的 kext 似乎无法加载,因为它找不到这个符号..

 12/26/16 10:02:53.000 AM kernel[0]: kxld[com.my.driver]: The following symbols are unresolved for this kext:
 12/26/16 10:02:53.000 AM kernel[0]: kxld[com.my.driver]: _OSPrintBacktrace

尽管它确实存在于内核二进制文件中

 nm /System/Library/Kernels/kernel  | grep OSPrintBacktrace
 ffffff8000837290 T _OSPrintBacktrace

谁能告诉我我在这里错过了什么?

函数 OSPrintBacktrace 不是任何 (public) KPI 的一部分。然而,OSReportWithBacktrace 是 (libkern),因此您最好不要使用它。或者,您也可以使用 OSBacktrace.