fuchsia: Suspend process before manipulating it

This was broken by yours truly in
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1057833/,
probably because I couldn't decide whether to do it in HandleException()
or HandleExceptionHandles() (or possibly I'm just a dope).

In any case, suspending in HandleExceptionHandles() is fine, the thread
for the exception will be suspended on entry, so suspending other
threads after the initial excepting thread's koid to handle lookup is
OK.

This avoids a bunch of logspam like:

  zx_thread_read_state(ZX_THREAD_STATE_GENERAL_REGS): ZX_ERR_BAD_STATE (-20)

and presumably will fix non-excepting-thread stacks being completely
broken?

Bug: fuchsia:DX-1190

Test: run `crasher write0_mt` on device
Change-Id: I029537aba2955d4f055471bf36a4e9a0f8ef2d5e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1536268
Reviewed-by: Francois Rousseau <frousseau@google.com>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
1 file changed
tree: cc66527576a075fbf95788b004c6ea660f53e582
  1. .clang-format
  2. .gitignore
  3. .gn
  4. .vpython
  5. AUTHORS
  6. BUILD.gn
  7. CONTRIBUTORS
  8. DEPS
  9. LICENSE
  10. README.md
  11. build/
  12. client/
  13. codereview.settings
  14. compat/
  15. crashpad.gyp
  16. doc/
  17. handler/
  18. infra/
  19. minidump/
  20. navbar.md
  21. package.h
  22. snapshot/
  23. test/
  24. third_party/
  25. tools/
  26. util/
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