[debugger] Use registers on the StackFrame.

Previously the registers must be requested asynchonously when needed by
the expression evaluator. Now that the registers are on each stack
frame, they can be returned directly which works for non-topmost stack
frames.

Removes the restriction that the frame registers did not include IP and
SP. This just complicated the code even though the values are
technically duplicated.

Because all general registers are synchronous now, the test for an
asynchronous base pointer was rewritten to refer to memory (always
requires an async call) rather than a register.

Separates out the memory lookup mocking from MockSymbolDataProvider so
the logic can be shared with the MockRemoteAPI to support the test.

Adds DWARF register mappings for x86 xmm0->xmm15. These are not
currently used. This was implemented because I was going to use them for
a test that ended up being written another way. We'll need them
eventually so I left them in with a test.

Change-Id: I25da76d30628095c5355258845596f47a0888621
26 files changed
tree: d8db704b1c65fa489a78625a10d654d3512b312a
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. infra/
  9. peridot/
  10. products/
  11. scripts/
  12. sdk/
  13. src/
  14. third_party/
  15. tools/
  16. zircon/
  17. .clang-format
  18. .clang-tidy
  19. .dir-locals.el
  20. .gitattributes
  21. .gitignore
  22. .gn
  23. AUTHORS
  24. BUILD.gn
  25. CODE_OF_CONDUCT.md
  26. CONTRIBUTING.md
  27. LICENSE
  28. OWNERS
  29. PATENTS
  30. README.md
  31. 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 the documentation.