Install any skill in seconds. Free to start, no credit card required.
Get Started Free →GDB debugging assistant for AI agents - analyze core dumps, debug live processes, investigate crashes and deadlocks with source code correlation
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | — | — |
| case-04 | ✗→✓ | ▲ Improved | — | — |
| case-20 | ✗→✓ | ▲ Improved | — | — |
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-10 | ✗→✓ | ▲ Improved | — | — |
A GDB debugging skill designed for AI agents. Combines source code analysis with runtime state inspection using gdb-cli to provide intelligent debugging assistance for C/C++ programs.
bash# Install gdb-cli pip install gdb-cli # Or from GitHub pip install git+https://github.com/Cerdore/gdb-cli.git # Verify GDB has Python support gdb -nx -q -batch -ex "python print('OK')"
Requirements:
For core dump analysis:
bashgdb-cli load --binary <binary_path> --core <core_path> [--gdb-path <gdb_path>]
For live process debugging:
bashgdb-cli attach --pid <pid> [--binary <binary_path>]
Output: A session_id like "session_id": "a1b2c3". Store this for subsequent commands.
bashSESSION="<session_id>" # List all threads gdb-cli threads -s $SESSION # Get backtrace (with local variables) gdb-cli bt -s $SESSION --full # Get registers gdb-cli registers -s $SESSION
For each frame in the backtrace:
{file}:{line} in {function}gdb-cli locals-cmd -s $SESSION --frame <N>Example correlation:
Frame #0: process_data() at src/worker.c:87
Source code shows:
85: Node* node = get_node(id);
86: if (node == NULL) return;
87: node->data = value; <- Crash here
Variables show:
node = 0x0 (NULL)
Analysis: The NULL check on line 86 didn't catch the issue.bash# Examine variables gdb-cli eval-cmd -s $SESSION "variable_name" gdb-cli eval-cmd -s $SESSION "ptr->field" gdb-cli ptype -s $SESSION "struct_name" # Memory inspection gdb-cli memory -s $SESSION "0x7fffffffe000" --size 64 # Disassembly gdb-cli disasm -s $SESSION --count 20 # Check all threads (for deadlock analysis) gdb-cli thread-apply -s $SESSION bt --all # View shared libraries gdb-cli sharedlibs -s $SESSION
bash# List active sessions gdb-cli sessions # Check session status gdb-cli status -s $SESSION # Stop session (cleanup) gdb-cli stop -s $SESSION
Indicators:
Investigation:
bashgdb-cli registers -s $SESSION # Check RIP gdb-cli eval-cmd -s $SESSION "ptr" # Check pointer value
Indicators:
pthread_mutex_lock in backtraceInvestigation:
bashgdb-cli thread-apply -s $SESSION bt --all # Look for circular wait patterns
Indicators:
Investigation:
bashgdb-cli memory -s $SESSION "&variable" --size 128 gdb-cli registers -s $SESSION
bash# Load core dump gdb-cli load --binary ./myapp --core /tmp/core.1234 # Get crash location gdb-cli bt -s a1b2c3 --full # Examine crash frame gdb-cli locals-cmd -s a1b2c3 --frame 0
bash# Attach to stuck server gdb-cli attach --pid 12345 # Check all threads gdb-cli threads -s b2c3d4 # Get all backtraces gdb-cli thread-apply -s b2c3d4 bt --all
--range for pagination on large thread counts or deep backtracesptype to understand complex data structures before examining values@systematic-debugging - General debugging methodology@test-driven-development - Write tests before implementation| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-17 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +27 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.