이 가이드는 GDB(GNU Debugger)와 MCP(Model Context Protocol)를 연결하여 AI 모델과 통합하는 방법을 설명합니다.
일 줄 알았으나.. MCP와는 조금 결이 다릅니다. 그냥 GDB에 AI를 통합한것이라고 봐주세요 :)
GDB-MCP는 디버깅 과정에서 AI의 도움을 받을 수 있도록 GDB를 확장한 시스템입니다.
주요 기능:
- 현재 디버깅 컨텍스트를 기반으로 AI에게 질문하기
- 코드 및 함수에 대한 AI 설명 요청
- 버그 수정 제안 받기
- AI에게 자동으로 디버깅하도록 하기
- Anthropic API 키 (Claude 모델 사용) / 혹은 Gemini API 키
- Python
requests라이브러리
- 설치 스크립트를 다운로드하여 실행:
wget -O install-gdb-mcp.sh https://raw.githubusercontent.com/your-repo/gdb-mcp/main/install.sh
chmod +x install-gdb-mcp.sh
./install-gdb-mcp.sh- 프롬프트에 따라 Anthropic API 키를 입력하거나 나중에 설정할 수 있습니다.
-
GDB-MCP 스크립트 저장:
~/.gdb-mcp/디렉토리 생성- 첫 번째 코드 블록의 내용을
~/.gdb-mcp/gdb_mcp.py에 저장
-
GDB 초기화 파일 설정:
~/.gdbinit파일에 다음 줄 추가:source ~/.gdb-mcp/gdb_mcp.py
-
Anthropic API 키 설정:
- 환경 변수에 설정:
export ANTHROPIC_API_KEY=your_api_key - 또는 GDB 내에서
mcp-setup명령 사용
- 환경 변수에 설정:
GDB 내에서 다음 명령어를 사용할 수 있습니다:
mcp-help: 도움말 표시mcp-setup API_KEY: API 키 설정
mcp-ask 질문: 현재 디버깅 컨텍스트에 대해 AI에게 질문mcp-explain [함수명]: 현재 또는 지정된 함수에 대한 AI 설명 요청mcp-fix: 현재 발생한 버그에 대한 수정 제안 요청mcp-agent 작업내용: AI가 자동으로 GDB 명령어를 실행하며 분석 진행
프로그램에서 세그먼트 오류가 발생한 경우:
(gdb) break main
(gdb) run
(gdb) continue # 세그먼트 오류 발생
(gdb) mcp-ask "이 세그먼트 오류의 원인은 무엇인가요?"
함수 이해가 필요한 경우:
(gdb) list my_complex_function
(gdb) mcp-explain my_complex_function
버그 수정 제안이 필요한 경우:
(gdb) # 버그가 발생한 지점에서
(gdb) mcp-fix
프로그램 분석을 요청할 경우:
(gdb) mcp-agent "이 프로그램을 실행해보고 버그가 있다면 찾아줘"
- 컨텍스트 수집: GDB-MCP는 현재 디버깅 상태(스택 트레이스, 소스 코드, 변수 등)를 수집합니다.
- AI 쿼리 구성: 수집된 정보를 기반으로 AI에게 보낼 쿼리를 구성합니다.
- AI 통신: Anthropic API를 통해 Claude 모델에 쿼리를 전송합니다.
- 응답 처리: AI의 응답을 사용자에게 표시합니다.
새로운 GDB 명령어를 추가하려면:
GDBCommand클래스를 상속하는 새 클래스 작성__init__과invoke메서드 구현initialize()함수에서 인스턴스 생성
더 많은 디버깅 정보를 수집하려면:
GDBContextExtractor클래스에 새 메서드 추가- 명령어 클래스의
_collect_debug_context메서드 수정
Claude 외의 다른 AI 모델을 사용하려면:
MCPClient클래스를 수정하여 다른 API와 통신하도록 변경- 프롬프트 구성 방식을 해당 모델에 맞게 조정
- API 연결 오류: 인터넷 연결과 API 키가 올바른지 확인
- GDB 로딩 오류: GDB 버전 확인 및 Python 지원 확인
- 명령어 인식 실패:
.gdbinit파일이 올바르게 구성되었는지 확인
문제 해결을 위해 로깅을 활성화:
import logging
logging.basicConfig(filename='~/.gdb-mcp/debug.log', level=logging.DEBUG)- 민감한 코드를 외부 AI 서비스에 전송하므로 보안 정책을 확인하세요.
- AI 응답은 항상 검증이 필요합니다. 제안된 수정 사항은 주의해서 적용하세요.
- API 호출에는 비용이 발생할 수 있습니다. 사용량을 모니터링하세요.
GDB-MCP를 사용하면 디버깅 과정에서 AI의 도움을 쉽게 받을 수 있습니다. 코드 이해, 버그 분석, 해결책 제안 등의 작업을 더 효율적으로 수행할 수 있습니다.

