guard.rs |
Contains types and helpers for dealing with `EXC_GUARD` exceptions.
`EXC_GUARD` exceptions embed details about the guarded resource in the `code`
and `subcode` fields of the exception
See <https://github.com/apple-oss-distributions/xnu/blob/e7776783b89a353188416a9a346c6cdb4928faad/osfmk/kern/exc_guard.h>
for the top level types that this module wraps. |
2578 |
ipc.rs |
Unfortunately, sending a [`CrashContext`] to another process on Macos
needs to be done via mach ports, as, for example, `mach_task_self` is a
special handle that needs to be translated into the "actual" task when used
by another process, this _might_ be possible completely in userspace, but
examining the source code for this leads me to believe that there are enough
footguns, particularly around security, that this might take a while, so for
now, if you need to use a [`CrashContext`] across processes, you need
to use the IPC mechanisms here to get meaningful/accurate data
Note that in all cases of an optional timeout, a `None` will return
immediately regardless of whether the messaged has been enqueued or
dequeued from the kernel queue, so it is _highly_ recommended to use
reasonable timeouts for sending and receiving messages between processes. |
19399 |
resource.rs |
Contains types and helpers for dealing with `EXC_RESOURCE` exceptions.
`EXC_RESOURCE` exceptions embed details about the resource and the limits
it exceeded within the `code` and, in some cases `subcode`, fields of the exception
See <https://github.com/apple-oss-distributions/xnu/blob/e6231be02a03711ca404e5121a151b24afbff733/osfmk/kern/exc_resource.h>
for the various constants and decoding of exception information wrapped in
this module. |
17872 |