Search code examples
macosdriverkernel-extensionxnu

Kext driver cannot find symbol OSPrintBacktrace


I'm using the following function when one of my iokit commands is being called. it defined in

extern void OSPrintBacktrace(void);

however, my kext seems that my kext fail to load since it couldn't find this symbol..

 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

although it does exists in kernel binary

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

Can anybody tell me what am i missing here ?


Solution

  • The function OSPrintBacktrace is not part of any of the (public) KPIs. OSReportWithBacktrace is however (libkern), so you're probably best off using that. Alternatively, you can also use OSBacktrace.