应用简介
AI代理的GDB调试助手 - 分析核心转储,调试实时进程,通过源代码关联调查崩溃和死锁
---
name: gdb-cli
description: "GDB debugging assistant for AI agents - analyze core dumps, debug live processes, investigate crashes and deadlocks with source code correlation"
category: development
risk: critical
source: community
date_added: "2026-03-22"
author: Cerdore
tags:
- debugging
- gdb
- core-dump
- crash-analysis
- c++
- c
tools:
- claude-code
- cursor
- gemini-cli
- codex-cli
- antigravity
---
# GDB Debugging Assistant
## Overview
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.
## When to Use This Skill
- Analyze core dumps or crash dumps
- Debug running processes with GDB attach
- Investigate crashes, deadlocks, or memory issues
- Get intelligent debugging assistance with source code context
- Debug multi-threaded applications
## Do Not Use This Skill When
- The task is unrelated to C/C++ debugging
- The user needs general-purpose assistance without debugging
- No GDB is available (GDB 9.0+ with Python support required)
## Prerequisites
```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:**
- Python 3.6.8+
- GDB 9.0+ with Python support enabled
- Linux OS
## How It Works
### Step 1: Initialize Debug Session
**For core dump analysis:**
```bash
gdb-cli load --binary <binary_path> --core <core_path> [--gdb-path <gdb_path>]
```
**For live process debugging:**
```bash
gdb-cli attach --pid <pid> [--binary <binary_path>]
```
**Output:** A session_id like `"session_id": "a1b2c3"`. Store this for subsequent commands.
### Step 2: Gather Initial Information
```bash
SESSION="<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
```
### Step 3: Correlate Source Code (CRITICAL)
For each frame in the backtrace:
1. **Extract frame info**: `{file}:{line} in {function}`
2. **Read source context**: Get ±20 lines around the crash point
3. **Get local variables**: `gdb-cli locals-cmd -s $SESSION --frame <N>`
4. **Analyze**: Correlate code logic with variable values
**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.
```
### Step 4: Deep Investigation
```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
```
### Step 5: Session Management
```bash
# List active sessions
gdb-cli sessions
# Check session status
gdb-cli status -s $SESSION
# Stop session (cleanup)
gdb-cli stop -s $SESSION
```
## Common Debugging Patterns
### Pattern: Null Pointer Dereference
**Indicators:**
- Crash on memory access instruction
- Pointer variable is 0x0
**Investigation:**
```bash
gdb-cli registers -s $SESSION # Check RIP
gdb-cli eval-cmd -s $SESSION "ptr" # Check pointer value
```
### Pattern: Deadlock
**Indicators:**
- Multiple threads stuck in lock functions
- `pthread_mutex_lock` in backtrace
**Investigation:**
```bash
gdb-cli thread-apply -s $SESSION bt --all
# Look for circular wait patterns
```
### Pattern: Memory Corruption
**Indicators:**
- Crash in malloc/free
- Garbage values in variables
**Investigation:**
```bash
gdb-cli memory -s $SESSION "&variable" --size 128
gdb-cli registers -s $SESSION
```
## Examples
### Example 1: Core Dump Analysis
```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
```
### Example 2: Live Process Debugging
```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
```
## Best Practices
- Always read source code before drawing conclusions from variable values
- Use `--range` for pagination on large thread counts or deep backtraces
- Use `ptype` to understand complex data structures before examining values
- Check all threads for multi-threaded issues
- Cross-reference types with source code definitions
## Security & Safety Notes
- This skill requires GDB access to processes and core dumps
- Attaching to processes may require appropriate permissions (sudo, ptrace_scope)
- Core dumps may contain sensitive data - handle with care
- Only debug processes you have authorization to analyze
## Related Skills
- `@systematic-debugging` - General debugging methodology
- `@test-driven-development` - Write tests before implementation
## Links
- **Repository**: https://github.com/Cerdore/gdb-cli
- **PyPI**: https://pypi.org/project/gdb-cli/
- **Documentation**: https://github.com/Cerdore/gdb-cli#readme
## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
发布日期
5/16/2026
提供方
SkillOPIC
来源类型
导入
sickn33
other
数据安全
使用 Skill 时,您的对话内容将被发送至 AI 模型进行处理。我们会严格保护您的隐私数据,不会将您的对话内容用于模型训练或分享给第三方。 以下为此 Skill 的数据处理说明。
此 Skill 将处理您的对话输入
您的消息将作为 Prompt 上下文发送至 AI 模型
所有通信均通过加密通道传输
对话记录仅保存在本地
您可以随时清除本地对话历史,清除后数据不可恢复
评分和评价
已验证评分
Skill 信息
了解此 Skill 的详细信息和功能特性
其他
职场发展
文件结构
SKILL.md5.6 KB
版本历史
- 公开
- 来源于用户导入
如需详细了解相关要求,请访问帮助中心,或给我们提交反馈信息