In OSX, `launchd` is PID1. In userspace, it is obviously impossible to
attach to that process, but if that is the case, how do you debug a crash
in `launchd`? I assume there has to be a way of changing to an
application/PID context in lldb, but is it possible via a remote kernel
debug session? Anything I have tried via the `process` command has been
unsuccessful.

Some additional context:

In the past, once launchd crashes, there were coredumps in
/Library/Logs/DiagnosticReports/. Now, I am seeing launchd crash, which is
causing a kernel panic due to the check in
`xnu-2782.1.97/bsd/kern/kern_exit.c:357` which triggers a kernel panic in
the DiagnosticReports directory, however it doesn't give any context of
launchd. I did see that there are /usr/bin/sample output of launchd in
/private/var/log/com.apple.xpc.launchd/, however it doesn't really give
much context either. I did notice that there are some dtrace hooks for
launchd exit, but before I write a dtrace script (which I also dont know
will work):

* Is it possible to use a lldb when remote kernel debugging to switch
contexts to pid1/launchd?

* If not, is there a way to cause launchd to output a coredump once it
crashes?

* Is there any other way of debugging launchd that I am not thinking about?


Thanks.
_______________________________________________
lldb-dev mailing list
lldb-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to