Skip to main content
Glama

LLDB-MCP

BSD 2-Clause "Simplified" License
1

LLDB-MCP

スクリーンショット

バッファ オーバーフローを自動的にデバッグする acton のこちらの記事をご覧ください: https://x.com/full\_duplex/status/1904770477698277847

概要

LLDB-MCPは、LLDBデバッガとClaudeのModel Context Protocol(MCP)を統合するツールです。この統合により、ClaudeはLLDBデバッグセッションを直接開始、制御、操作できるようになり、AIを活用したデバッグワークフローを実現できます。

このツールは、LLDB を操作するための包括的なコマンド セットを提供します。

  • LLDBセッションの開始と管理
  • デバッグ用のプログラムの読み込み
  • ブレークポイントとウォッチポイントの設定
  • プログラム実行の制御
  • メモリ、レジスタ、変数の検査
  • スタックトレースとプログラム状態の分析

特徴

  • 複数のLLDBデバッグセッションを作成および管理する
  • 実行ファイルを読み込み、実行中のプロセスにアタッチする
  • 事後分析のためにコアダンプファイルをロードする
  • 任意のLLDBコマンドを実行する
  • プログラム実行のきめ細かな制御
  • メモリの検査と分解
  • スレッドとスタックフレームの検査

インストール

  1. リポジトリをクローンします。
    git clone https://github.com/stass/lldb-mcp.git cd lldb-mcp
  2. 依存関係をインストールします:
    pip install mcp
  3. LLDB-MCP サーバーを使用するように Claude を構成します。
    • Claudeデスクトップアプリの設定を開く
    • MCP構成に以下を追加します: GXP3

使用法

インストールして構成したら、自然言語を使用して Claude を通じて LLDB と対話できます。

基本的なワークフロー

  1. 新しいLLDBセッションを開始する
  2. プログラムをロードする
  3. ブレークポイントを設定する
  4. プログラムを実行する
  5. 変数とメモリを検査する
  6. 実行を制御する (continue、step、next など)
  7. 完了したらセッションを終了する

コマンド例

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 cc overflow.cを使用してコンパイルし、Claude に結果のプログラムで問題をデバッグしてもらってください。

I'm trying to debug my program a.out that is crashing with certain arguments, e.g. when I pass "hello". Can you help me debug it?

デバッグのヒント

  • 専用の関数がないLLDBコマンドを実行する必要がある場合は、 lldb_command使用します。
  • 詳細なログ記録のために、サーバーを起動するときに--debugフラグを使用してデバッグモードを有効にします。
  • サーバーのシャットダウン時にセッションは自動的にクリーンアップされます
  • 各セッションには固有のIDがあります。コマンドを実行するときは正しいIDを使用してください。

要件

  • Python 3.7以上
  • システムにLLDBがインストールされている
  • MCPサポート付きのClaudeデスクトップアプリ

トラブルシューティング

  • LLDBコマンドがタイムアウトする場合は、LLDBが正しくインストールされていることを確認してください。
  • 新しいセッションを開始するときにLLDBへのパスを確認する
  • プロセスにアタッチするときに権限の問題がないか確認する
  • コマンドが正しく実行されない場合はデバッグログを確認してください

ライセンス

BSD 2節

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

ネイティブ アプリの自動分析、デバッグ、逆アセンブルを可能にする LLDB 用の MCP サーバー。

  1. 概要
    1. 特徴
      1. インストール
        1. 使用法
          1. 基本的なワークフロー
          2. コマンド例
        2. サポートされているコマンド
          1. セッション管理
          2. プログラムの読み込み
          3. 実行制御
          4. ブレークポイントとウォッチポイント
          5. 検査
          6. スレッド管理
          7. その他
        3. サンプルプログラム
          1. デバッグのヒント
            1. 要件
              1. トラブルシューティング
                1. ライセンス

                  Related MCP Servers

                  • -
                    security
                    A
                    license
                    -
                    quality
                    A Python-based MCP server that allows Claude and other LLMs to execute arbitrary Python code directly through your desktop Claude app, enabling data scientists to connect LLMs to APIs and executable code.
                    Last updated -
                    23
                    MIT License
                    • Apple
                    • Linux
                  • -
                    security
                    A
                    license
                    -
                    quality
                    A GDB/MI protocol server based on the MCP protocol, providing remote application debugging capabilities.
                    Last updated -
                    19
                    Rust
                    MIT License
                    • Linux
                    • Apple
                  • A
                    security
                    A
                    license
                    A
                    quality
                    MCP server for reverse engineering that enables interaction with IDA Pro for analysis tasks such as decompilation, disassembly, and memory engagement reports.
                    Last updated -
                    24
                    28
                    Python
                    MIT License
                  • -
                    security
                    A
                    license
                    -
                    quality
                    An MCP server that allows LLMs to autonomously reverse engineer applications by exposing Ghidra functionality, enabling decompilation, analysis, and automatic renaming of methods and data.
                    Last updated -
                    4,290
                    Apache 2.0
                    • Apple

                  View all related MCP servers

                  MCP directory API

                  We provide all the information about MCP servers via our MCP API.

                  curl -X GET 'https://glama.ai/api/mcp/v1/servers/stass/lldb-mcp'

                  If you have feedback or need assistance with the MCP directory API, please join our Discord server