Integrations
LLDB-MCP
여기 Acton에서 버퍼 오버플로를 자동으로 디버깅하는 방법을 확인하세요: https://x.com/full\_duplex/status/1904770477698277847
개요
LLDB-MCP는 LLDB 디버거와 Claude의 모델 컨텍스트 프로토콜(MCP)을 통합하는 도구입니다. 이 통합을 통해 Claude는 LLDB 디버깅 세션을 직접 시작, 제어 및 상호 작용하여 AI 지원 디버깅 워크플로를 구현할 수 있습니다.
이 도구는 다음을 포함하여 LLDB 작업을 위한 포괄적인 명령 세트를 제공합니다.
- LLDB 세션 시작 및 관리
- 디버깅을 위한 프로그램 로딩
- 중단점 및 감시점 설정
- 프로그램 실행 제어
- 메모리, 레지스터 및 변수 검사
- 스택 추적 및 프로그램 상태 분석
특징
- 여러 LLDB 디버깅 세션을 만들고 관리합니다.
- 실행 파일을 로드하고 실행 중인 프로세스에 연결합니다.
- 사후 분석을 위해 코어 덤프 파일 로드
- 임의의 LLDB 명령 실행
- 프로그램 실행에 대한 세밀한 제어
- 메모리 검사 및 분해
- 스레드 및 스택 프레임 검사
설치
- 저장소를 복제합니다.지엑스피1
- 종속성 설치:Copy
- LLDB-MCP 서버를 사용하도록 Claude를 구성합니다.
- Claude 데스크톱 앱 구성을 엽니다.
- MCP 구성에 다음을 추가하세요: GXP3
용법
설치 및 구성이 완료되면 Claude를 통해 자연어를 사용하여 LLDB와 상호 작용할 수 있습니다.
기본 워크플로
- 새로운 LLDB 세션을 시작합니다
- 프로그램 로드
- 중단점 설정
- 프로그램을 실행하세요
- 변수와 메모리 검사
- 제어 실행(계속, 단계, 다음 등)
- 완료되면 세션을 종료합니다.
예제 명령
다음은 Claude를 통해 LLDB-MCP와 상호 작용하는 방법에 대한 몇 가지 예입니다.
- "새로운 LLDB 세션을 시작합니다"
- "프로그램 '/path/to/executable'을 로드하세요"
- "main에 중단점을 설정하세요"
- "프로그램을 실행하세요"
- "백트레이스 표시"
- "변수 'count'의 값을 출력하세요"
- "다음 줄로 넘어가세요"
- "주소 0x1000의 메모리를 검사합니다"
- "레지스터 값 표시"
- "실행을 계속하세요"
- "프로세스를 종료하세요"
- "LLDB 세션을 종료합니다"
지원되는 명령
세션 관리
lldb_start
: 새로운 LLDB 세션을 시작합니다lldb_terminate
: LLDB 세션을 종료합니다.lldb_list_sessions
: 모든 활성 LLDB 세션을 나열합니다.
프로그램 로딩
lldb_load
: LLDB에 프로그램 로드lldb_attach
: 실행 중인 프로세스에 연결lldb_load_core
: 코어 덤프 파일을 로드합니다
실행 제어
lldb_run
: 로드된 프로그램을 실행합니다lldb_continue
: 프로그램 실행을 계속합니다.lldb_step
: 다음 줄 또는 명령어로 이동합니다.lldb_next
: 함수 호출을 단계별로 실행합니다.lldb_finish
: 현재 함수가 반환될 때까지 실행합니다.lldb_kill
: 실행중인 프로세스를 종료합니다.
중단점과 감시점
lldb_set_breakpoint
: 중단점을 설정합니다lldb_breakpoint_list
: 모든 중단점을 나열합니다lldb_breakpoint_delete
: 중단점 삭제lldb_watchpoint
: 변수 또는 메모리 주소에 감시점을 설정합니다.
점검
lldb_backtrace
: 호출 스택 표시lldb_print
: 표현식의 값을 출력합니다.lldb_examine
: 메모리 검사lldb_info_registers
: 디스플레이 레지스터lldb_frame_info
: 스택 프레임에 대한 자세한 정보를 가져옵니다.lldb_disassemble
: 코드 디스어셈블lldb_process_info
: 현재 프로세스에 대한 정보를 가져옵니다.
스레드 관리
lldb_thread_list
: 현재 프로세스의 모든 스레드를 나열합니다.lldb_thread_select
: 특정 스레드를 선택합니다
여러 가지 잡다한
lldb_command
: 임의의 LLDB 명령을 실행합니다.lldb_expression
: 현재 프레임에서 표현식을 평가합니다.lldb_help
: LLDB 명령에 대한 도움말을 받습니다.
예제 프로그램
example/overflow.c
에는 특정 인수로 버퍼 오버플로를 발생시키는 C 프로그램 예제가 포함되어 있습니다. cc overflow.c
사용하여 이 프로그램을 컴파일하고 Claude에게 결과 프로그램에서 문제를 디버깅하도록 요청하세요.
Copy
디버깅 팁
- 전용 기능이 없는 LLDB 명령을 실행해야 하는 경우
lldb_command
사용하세요. - 자세한 로깅을 위해 서버를 시작할 때
--debug
플래그로 디버그 모드를 활성화합니다. - 서버가 종료되면 세션이 자동으로 정리됩니다.
- 각 세션에는 고유한 ID가 있습니다. 명령을 실행할 때 올바른 ID를 사용해야 합니다.
요구 사항
- 파이썬 3.7 이상
- 시스템에 LLDB 설치됨
- MCP를 지원하는 Claude 데스크톱 앱
문제 해결
- LLDB 명령이 시간 초과되는 경우 LLDB가 올바르게 설치되었는지 확인하세요.
- 새 세션을 시작할 때 LLDB 경로를 확인하세요
- 프로세스에 연결할 때 권한 문제가 있는지 확인하세요.
- 명령이 올바르게 실행되지 않으면 디버그 로그를 검토하세요.
특허
BSD 2절
This server cannot be installed
네이티브 앱의 자동 분석, 디버깅 및 분해를 허용하는 LLDB용 MCP 서버입니다.