[debugger] Add Ptrace handlers.

Adds the basic Linux ptrace BinaryLauncher interface and the ptrace
message handlers (in linux_task.cc). Adds some associated low-level
Linux implementations like the SuspendHandle and ExceptionHandle. This
code is not yet used and will be hooked up in a followup.

The delicate forking code in linux_binary_launcher.cc is mostly copied
from Chromium's process forking code in base/.

The current arch.cc file is Zircon-specific. Rename to zircon_arch.cc
and add a Linux version.

Change-Id: Id1b621c005accec366f41577e0313009b0cf1081
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/945657
Reviewed-by: Jacob Rutherford <jruthe@google.com>
Commit-Queue: Brett Wilson <brettw@google.com>
12 files changed
tree: 4d17a0c0d85700e94f488a3b703b4d5b3d4186e0
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. infra/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .editorconfig
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gitmodules
  21. .gn
  22. .ignore
  23. analysis_options.yaml
  24. AUTHORS
  25. BUILD.gn
  26. CODE_OF_CONDUCT.md
  27. CONTRIBUTING.md
  28. fuchsia.code-workspace
  29. LICENSE
  30. OWNERS
  31. PATENTS
  32. pyproject.toml
  33. pyrightconfig.json
  34. README.md
  35. rustfmt.toml
  36. shac.star
  37. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.