[debugger] Add to process handle extraction.

Converts the unwinder to using the ThreadHandle and ProcessHandle abstractions.

Converts thread state to a new class to allow this to be abtracted better.

Removes the process_info file and moves the ELF utilities from there
into a new file. This new file now uses the ProcessHandle abstractions
which will allow the module extration to be tested in the future,
although there are still no tests for this older code.

Creates a new GeneralRegisters container to provide cross-architecture
accesors for the important registers. Use this when relevant and move
the getter/setters of the general registers from the ArchProvider to the
ThreadHandle.

Updates changed function signatures to prefer to return values rather
than use out params, and use references rather than pointers for out
params (as specified by updated style guide).

Change-Id: I3e64b760b134b1ed74e2f3aa6aed6b0c1bbadf5d
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/404359
Testability-Review: Brett Wilson <brettw@google.com>
Commit-Queue: Brett Wilson <brettw@google.com>
Reviewed-by: Dangyi Liu <dangyi@google.com>
33 files changed
tree: 080bbe6f27acdcd48562ff3c08f79bfd1d5e22f7
  1. boards/
  2. build/
  3. bundles/
  4. cts/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .gitattributes
  18. .gitignore
  19. .gn
  20. .style.yapf
  21. AUTHORS
  22. BUILD.gn
  23. CODE_OF_CONDUCT.md
  24. CONTRIBUTING.md
  25. LICENSE
  26. OWNERS
  27. PATENTS
  28. README.md
  29. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.