MCPcopy Index your code
hub / github.com/al13n321/nnd

github.com/al13n321/nnd @v0.79

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.79 ↗ · + Follow
1,981 symbols 6,371 edges 91 files 244 documented · 12%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

A debugger for Linux. Partially inspired by RemedyBG.

Mom, can we have RAD Debugger on Linux? No, we have debugger at home. Debugger at home:

screenshot

Properties: * Fast. * TUI. * Not based on gdb or lldb, implemented mostly from scratch. * Works on large executables.

What we mean by "fast": * Operations that can be instantaneous should be instantaneous. I.e. snappy UI, no random freezes, no long waits. (Known exception: if the program has >~2k threads things become pretty slow. This will be improved.) * Operations that can't be instantaneous (loading debug info, searching for functions and types) should be reasonably efficient, multi-threaded, asynchronous, cancellable, and have progress bars.

Limitations: * Linux only * x86 only * 64-bit only * for native code only (e.g. C++, Rust, Zig, Odin, not Java or Python) * TUI only (no REPL, GUI, or IDE integration) * no remote debugging (but works fine over ssh) * single process (doesn't follow forks) * no record/replay or backwards stepping

Development status: * Most standard debugger features are there. E.g. breakpoints, conditional breakpoints, data breakpoints, stepping of all kinds, showing code and disassembly, watch expressions, built-in pretty-printers for most of C++ and Rust standard library. Many quality-of-life features are there (e.g. auto-downcasting abstract classes to concrete classes based on vtable). But I'm sure there are lots of missing features that I never needed but other people consider essential; let me know. * I use it every day and find it very helpful. * Not in active development right now. I fix reported bugs and add small requested features, but likely won't get around to implementing big features soon (e.g. redesigning the watch expression language to have loops etc, ARM support, Mac OS support, GUI, DAP).

Distributed as a single 6 MB executable file with no dependencies.

"Installation":

curl -L -o nnd 'https://github.com/al13n321/nnd/releases/latest/download/nnd'
chmod +x nnd
# try `./nnd --help` to get started

Or build from source:

rustup toolchain install 1.89
cargo +1.89.0 build --profile dbgo
# The executable is at target/dbgo/nnd

Run nnd --help for documentation.

Extension points exported contracts — how you extend this code

WindowContent (Interface)
(no doc) [11 implementers]
src/ui.rs
Searcher (Interface)
(no doc) [4 implementers]
src/search.rs
ByteRead (Interface)
(no doc) [1 implementers]
src/util.rs
ResultWithClonableError (Interface)
(no doc) [1 implementers]
src/error.rs
ByteWrite (Interface)
(no doc) [1 implementers]
src/util.rs
SetMinMax (Interface)
(no doc) [1 implementers]
src/util.rs

Core symbols most depended-on inside this repo

len
called by 755
src/arena.rs
push
called by 498
src/arena.rs
clone
called by 441
src/error.rs
contains
called by 274
src/common_ui.rs
get
called by 255
src/pool.rs
iter
called by 227
src/pool.rs
is_empty
called by 211
src/pool.rs
get_mut
called by 110
src/pool.rs

Shape

Method 1,237
Class 335
Function 324
Enum 79
Interface 6

Languages

Rust94%
C++3%
C3%

Modules by API surface

other_things/ui_prototype.rs209 symbols
src/symbols.rs145 symbols
src/ui.rs124 symbols
src/types.rs99 symbols
src/imgui.rs94 symbols
src/debugger.rs86 symbols
src/util.rs84 symbols
src/dwarf.rs84 symbols
src/expr.rs69 symbols
src/widgets.rs60 symbols
src/interp.rs59 symbols
src/terminal.rs55 symbols

For agents

$ claude mcp add nnd \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact