blob: 3c3b17b5acd97ba21e6e2b0cc2768cf1b72b527b [file] [log] [blame] [view]
# 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 Fuchsia 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.