How to debug kernel panic on macOS Catalina, as Catalina is on Read-only File system

Facing kernel panic on accessing "Offline" attribute of SMB protocol in our custom kext. How to debug these kernel panics on macOS Catalina.

The debugging kernel extension steps are not supported for Catalina because of Read-only file system. Also kext with IOKit.framework does not load on macOS 10.14.x with error

  • There is no "/Volumes/KernelDebugKit/mach_kernel" as per the documentation https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KEXTConcept/KEXTConceptDebugger/debug_tutorial.html#//apple_ref/doc/uid/20002367-CHDIHFDI, gdb -arch i386 /Volumes/KernelDebugKit/mach_kernel
  • Unable to create PanicDumps directory to collect panic through kdump daemon under '/' volume, as Catalina is read-only file system Ref: https://developer.apple.com/library/archive/technotes/tn2004/tn2118.html
  • Unable to load kexts with IOKit framework references with errors on MAC OS 10.14 to debug:
    1. The super class vtable '__ZTV9IOService' for vtable '__ZTV23com_microfocus_cisiokit' is out of date. Make sure your kext has been built against the correct headers.
    2. The super class vtable '__ZTV12IOUserClient' for vtable '__ZTV8cisiokit' is out of date. Make sure your kext has been built against the correct headers.

Is there any documentation that specifies how to debug kernel panic on macOS catalina with read-only file system set up?

Note: Disabling SIP also does not work.


Followed https://developer.apple.com/library/archive/technotes/tn2004/tn2118.html

Disabled sip on host/developer machine then ran sudo mount -uw /. Panic dumps from target machine got uploaded to developer machine, as expected.