Skip to content

Latest commit

 

History

History
148 lines (126 loc) · 4.61 KB

File metadata and controls

148 lines (126 loc) · 4.61 KB

Project Status & Roadmap

This document tracks the implementation status of debugger-cli.

Current Version: 0.1.1 Status: Feature-complete for core debugging workflows Last Updated: 2026-01-25

Implementation Status

✅ Completed

Feature Description
Session Management start, attach, stop, detach, status, restart
Breakpoints add, remove, list, conditional, hit-count, initial breakpoints
Execution Control continue, next, step, finish, pause, await
Inspection context, locals, backtrace, print, eval
Thread/Frame Navigation threads, thread, frame, up, down
Output Capture output command with buffering
Setup Command Installer for debug adapters
Configuration TOML config file support
Cross-platform IPC Unix sockets, Windows named pipes
DAP Protocol Full client implementation

🚧 In Progress

Feature Description Notes
Breakpoint enable/disable Toggle breakpoints Commands defined

📋 Planned

Feature Description Priority
Watchpoints Data breakpoints on variable changes Medium
Memory read Raw memory inspection Low
Source listing List source without stopping Low
Disassembly View assembly at location Low
Register inspection CPU register values Low
Core dump debugging Debug from core files Low

Command Reference

Command Aliases Status Description
start <program> Start debugging a program
start --break <loc> -b Set initial breakpoints before start
attach <pid> Attach to running process
stop Stop debug session
detach Detach (keep process running)
status Show daemon/session status
restart Restart program with same args
breakpoint add break, b Add breakpoint
breakpoint remove Remove breakpoint
breakpoint list List all breakpoints
continue c Continue execution
next n Step over
step s Step into
finish out Step out
pause Pause execution
await Wait for stop event
backtrace bt Show stack trace
locals Show local variables
print <expr> p Evaluate expression
eval <expr> Evaluate with side effects
context where Source context + variables
threads List threads
thread <id> Switch thread
frame <n> Switch frame
up Move up stack
down Move down stack
output Get program output
setup Install debug adapters
test Run YAML test scenarios
logs View daemon logs

Supported Debug Adapters

Adapter Languages Install Method Status
lldb-dap C, C++, Rust, Swift System package / LLVM ✅ Full
CodeLLDB C, C++, Rust GitHub releases ✅ Full
debugpy Python pip install ✅ Full
Delve Go go install / releases ✅ Full
GDB C, C++ System package (14.1+) ✅ Full
CUDA-GDB CUDA, C, C++ NVIDIA CUDA Toolkit ✅ Full (Linux)
cpptools C, C++ VS Code extension 📋 Planned
js-debug JavaScript, TypeScript VS Code extension 📋 Planned

Quick Test

# If installed via cargo install
debugger --help
debugger status

# If building from source
cargo build --release
./target/release/debugger --help
./target/release/debugger status

Full Test (requires lldb-dap)

# Create test program
cat > /tmp/test.c << 'EOF'
#include <stdio.h>
int main() {
    int x = 42;
    printf("x = %d\n", x);
    return 0;
}
EOF
gcc -g -o /tmp/test /tmp/test.c

# Debug it
./target/release/debugger start /tmp/test --stop-on-entry
./target/release/debugger breakpoint add main
./target/release/debugger continue
./target/release/debugger await
./target/release/debugger context
./target/release/debugger stop

Go Test (requires Delve)

# Create test program
mkdir -p /tmp/gotest && cd /tmp/gotest
cat > main.go << 'EOF'
package main
import "fmt"
func main() {
    x := 42
    fmt.Println("x =", x)
}
EOF
go mod init gotest && go build -gcflags="all=-N -l" -o gotest

# Debug it
debugger start ./gotest --adapter go --break main.main
debugger continue
debugger await
debugger locals
debugger stop