mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-26 23:01:05 +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>
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.