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) to the debug agent (code in ../debug_agent) running on the Fucsia target.
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.