mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-27 15:32:10 +08:00
3e748e9c4e
This updates (and corrects) 8dbbaff2e1a5, which added exc.defs, by adding mach_exc.defs too. The difference betwen the exc and mach_exc subsystems is that the |code| parameter is int[] in exc and int64_t[] in mach_exc. Many exceptions carry the exception address in code[1], and a 32-bit int results in the exception address being truncated in exc. No information is lost in mach_exc, where a 64-bit int64_t is used. In 8dbbaff2e1a5, I misremembered the type of the |code| parameter as a type derived from uintptr_t, such as vm_address_t, an integer as wide as a pointer. I was wrong, and mach_exc is necessary. I also noted that Apple normally forbids mach_-prefixed interfaces in favor of the prefix-less ones for the reasons I mentioned, and that, all else being equal, it was desirable to adhere to the spirit of that convention. Because neither exc nor mach_exc are available in the SDK, it’s moot from a technical perspective, as we need to provide our own stubs either way. Bug: crashpad:31 Change-Id: Ied1be470e653b2bead1a283cb8b9283d210c328d Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2159286 Reviewed-by: Justin Cohen <justincohen@chromium.org> Commit-Queue: Mark Mentovai <mark@chromium.org>
23 lines
948 B
Plaintext
23 lines
948 B
Plaintext
Name: XNU
|
|
Short Name: xnu
|
|
URL: https://opensource.apple.com/source/xnu/
|
|
URL: https://opensource.apple.com/tarballs/xnu/
|
|
Version: 6153.11.26 (from macOS 10.15.0)
|
|
License: APSL 2.0
|
|
License File: APPLE_LICENSE
|
|
Security Critical: no
|
|
|
|
Description:
|
|
XNU is the operating system kernel used on macOS and other Apple systems.
|
|
|
|
Local Modifications:
|
|
- EXTERNAL_HEADERS/mach-o/loader.h is present. Its #includes of
|
|
<mach/machine/thread_status.h> and <architecture/byte_order.h> have been
|
|
commented out as unnecessary. Note that its #includes of <mach/machine.h> and
|
|
<mach/vm_prot.h> have been retained but these headers have not been provided.
|
|
External headers must be made available to provide the cpu_type_t,
|
|
cpu_subtype_t, and vm_prot_t types.
|
|
- osfmk/mach/exc.defs and osfmk/mach/mach_exc.defs are present, to fill in
|
|
for <mach/exc.defs> and <mach/mach_exc.defs> on iOS, where they are missing.
|
|
- Anything not listed above is omitted.
|