| # 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. |