mach: Support raising EXCEPTION_*_IDENTITY_PROTECTED

This is a follow-up to 226847ab2f143ffeb51822ed0cc39d358614c727, which
added server-side support for EXCEPTION_STATE_IDENTITY_PROTECTED.
This change implements client-side and server-side support for raising,
receiving, and forwarding both EXCEPTION_STATE_IDENTITY_PROTECTED and
EXCEPTION_IDENTITY_PROTECTED exceptions via UniversalExceptionRaise()
and UniversalMachExcServer.

This is required to allow unit testing of the protected exception paths
in exc_client_variants_test, and to support future forwarding of Mach
exceptions to original handlers in the iOS crash handler on iOS 18+.

Bug: 401232341
Change-Id: I6b6fd63cfa9d32f93b9bb05901811a085c2d72b7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/7736788
Commit-Queue: Justin Cohen <justincohen@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
7 files changed
tree: 627233d21ffddaa474f4e7b1f5ce4ad1ead52c6a
  1. build/
  2. client/
  3. compat/
  4. doc/
  5. handler/
  6. infra/
  7. minidump/
  8. snapshot/
  9. test/
  10. third_party/
  11. tools/
  12. util/
  13. .clang-format
  14. .gitattributes
  15. .gitignore
  16. .gn
  17. .style.yapf
  18. .vpython3
  19. AUTHORS
  20. BUILD.gn
  21. codereview.settings
  22. CONTRIBUTORS
  23. DEPS
  24. LICENSE
  25. navbar.md
  26. OWNERS
  27. package.h
  28. README.md
README.md

Crashpad

Crashpad is a crash-reporting system.

Documentation

Source Code

Crashpad’s source code is hosted in a Git repository at https://chromium.googlesource.com/crashpad/crashpad.

Other Links