Skip to content
Snippets Groups Projects
Commit 6c5d0914 authored by Brett Wilson's avatar Brett Wilson Committed by CQ bot account: commit-bot@chromium.org
Browse files

[debugger] Add README files for the debugger.

Provides README files for the main debugger-related directories that
describes what the directories are for and provides links to the user
documentation.

Change-Id: I3e8d4315cba16dd4a79569e23b3ee0e4d5233e7c
parent 3cf4bbc0
No related branches found
No related tags found
No related merge requests found
# Debug
This directory contains the components of the Fuchsia debugger.
### User documentation
Please see the debugger [setup](../../../garnet/docs/debugger.md) and
[usage](../../../garnet/docs/debugger_usage.md) documentation.
### Subdirectories
* `debug_agent`: Code for the stub that runs on a Fuchsia system that
performs the backend operations.
* `ipc`: Definitions and associated code for the IPC protocol between the
zxdb frontend and the debug agent.
* `shared`: The set of code that is shared between the debug agent and the
zxdb frontend.
* `zxdb`: The debugger frontend that runs on the developer's host computer
(Linux or Mac).
# Debug agent
This is the code for the backend of the Fuchsia debugger. This backend runs
on the target Fuchsia computer (Linux or Mac) and talks via IPC (code in
[../ipc](../ipc)) to the zxdb frontend (code in [../zxdb](../zxdb)) running on
the developer's workstation.
### User documentation
Please see the debugger [setup](../../../../garnet/docs/debugger.md) and
[usage](../../../../garnet/docs/debugger_usage.md) documentation.
# Debug IPC
This is the shared IPC code between the debug router and the client debugger.
It's not useful for random programs. Client debugging code should use the
client debug library.
This is the shared IPC code between the debug agent (code in
[../debug_agent](../debug_agent)) and the zxdb frontend (code in
[../zxdb](../zxdb)). It's not useful for other programs. Client debugging code
should use the client debug library in [../zxdb/client](.,./zxdb/client).
This is a super simple custom IPC format because it is intended to be used
between two computers (unlike FIDL) and called at a very low level when
debugging the system (when higher-level primitives should be avoided).
debugging the system (when higher-level primitives should be avoided). The
goal is to replace it with a more robust IPC library when one is provided for
the system that can communicate off-device.
## Protocol information
......
# Zxdb
This is the code for the frontend of the Fuchsia debugger. This frontend runs
on the developer's host computer (Linux or Mac) and talks via IPC (code in
[../ipc](../ipc)) to the debug agent (code in [../debug_agent](../debug_agent))
running on the Fucsia target.
### User documentation
Please see the debugger [setup](../../../../garnet/docs/debugger.md) and
[usage](../../../../garnet/docs/debugger_usage.md) documentation.
### Subdirectories
In order from the lowest conceptual level to the highest. Dependencies always
point "up" in this list.
* `common`: Lower-level utilities used by multiple other layers. Can not
depend on any other part of the debugger.
* `symbols`: The symbol library. This wraps LLVM's DWARF parser and provides
symbol indexing, an object model, and helper utilities for dealing with
symbols.
* `expr`: The expression evaluation library. This provides a parser for
C++-like expressions and an execution environment for these expressions
using the symbol library.
* `client`: Conceptually this is a library for writing a debugger UI. It
provides functions for the lower-level commands like "step" and "next" and
an object model for dealing with processes, threads, etc. But this library
provides no user-interface.
* `console`: Frontend for the client that provides a console UI on Linux and
Mac.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment