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 Fuchsia target.

User documentation

Please see the debugger documentation.


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.

  • debug_adapter : Debug Adapter Protocol server to support IDE debugger clients.