Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
gdb_initA

启动指定架构的GDB进程,默认使用aarch64交叉编译器。

参数:

  • gdbPath (可选): GDB可执行文件路径

  • architecture (可选): 目标架构 (aarch64/arm/x86_64)

示例:

  • gdb_init() → 使用默认 aarch64-none-linux-gnu-gdb

  • gdb_init({architecture: "arm"}) → 使用 arm-none-eabi-gdb

  • gdb_init({gdbPath: "/opt/gdb/my-gdb"}) → 使用自定义GDB路径

gdb_connectA

通过TCP连接到目标板的gdbserver或QEMU。

参数:

  • target: 目标地址,格式为 host:port (例如 192.168.1.100:1234 或 localhost:1234)

示例:

  • gdb_connect({target: "localhost:1234"}) → 连接本地QEMU

  • gdb_connect({target: "192.168.1.100:1234"}) → 连接远程目标板

gdb_disconnectA

优雅地断开与目标板的连接并终止GDB进程。会先发送detach命令通知gdbserver。

gdb_load_programA

加载要调试的可执行文件及其符号表。

参数:

  • programPath: 可执行文件路径

必须在连接目标板后调用此命令。

gdb_runA

从程序入口点开始执行。程序将运行直到遇到断点或异常。

gdb_continueA

从当前位置继续执行程序。程序将运行直到遇到断点或异常。

gdb_stepA

执行一行代码。如果当前行包含函数调用,将进入该函数内部。

gdb_nextA

执行一行代码。如果当前行包含函数调用,将跳过该函数(不进入内部)。

gdb_finishA

继续执行直到当前函数返回。在返回点暂停。

gdb_interruptA

中断正在运行的程序。程序将暂停在当前位置。

gdb_set_breakpointA

在指定位置设置断点,支持条件断点和临时断点。

参数:

  • location: 断点位置 (文件:行号 或 函数名)

  • condition (可选): 条件表达式,如 x>5, i==10

  • temporary (可选): 临时断点,触发后自动删除

示例:

  • gdb_set_breakpoint({location: "main.c:10"}) → 在main.c第10行设置断点

  • gdb_set_breakpoint({location: "factorial", condition: "n==0"}) → 条件断点

  • gdb_set_breakpoint({location: "main", temporary: true}) → 临时断点

gdb_delete_breakpointA

删除指定编号的断点。

gdb_list_breakpointsA

列出当前设置的所有断点及其详细信息(包括条件)。

gdb_enable_breakpointA

启用指定编号的断点。

gdb_disable_breakpointA

禁用指定编号的断点。

gdb_set_conditionA

为已有断点设置或修改条件表达式。

参数:

  • breakpointId: 断点编号

  • condition: 条件表达式,如 x>5, i==10;传空字符串清空条件

示例:

  • gdb_set_condition({breakpointId: "1", condition: "x>5"}) → 设置条件

  • gdb_set_condition({breakpointId: "1", condition: ""}) → 清除条件

gdb_read_memoryA

从指定地址读取内存内容。

参数:

  • address: 内存地址 (如 0x400000)

  • length: 读取字节数 (1-4096)

gdb_list_registersA

获取目标架构的所有寄存器名称列表。

gdb_read_registersB

读取指定寄存器的值,默认读取所有寄存器。

参数:

  • registers (可选): 寄存器名称列表,如 [r0, pc, sp]

gdb_write_registerA

修改指定寄存器的值。

参数:

  • register: 寄存器名称 (如 r0, pc, sp)

  • value: 要写入的值 (如 0x1000 或 42)

警告: 此操作可能影响程序执行状态。

gdb_list_framesA

列出当前的调用栈帧信息。

gdb_select_frameA

选择指定编号的栈帧,用于查看该层的局部变量。

参数:

  • frameId: 栈帧编号 (从0开始,0为当前帧)

gdb_list_localsA

列出当前栈帧的局部变量及其值。

gdb_list_argumentsA

列出当前函数的参数及其值。

gdb_evaluate_expressionA

计算并返回表达式的值。

参数:

  • expression: 要计算的表达式 (如 x, *ptr, sizeof(var), x+y)

示例:

  • gdb_evaluate_expression({expression: "x"}) → 返回变量x的值

  • gdb_evaluate_expression({expression: "*ptr"}) → 返回指针指向的值

gdb_list_threadsA

列出当前程序的所有线程信息。

gdb_select_threadA

切换到指定线程进行调试。

gdb_get_current_locationA

获取程序当前位置(源文件和行号)。

gdb_list_source_filesA

列出调试程序的所有源文件。

gdb_disassembleA

反汇编当前函数或指定地址范围。

参数:

  • start (可选): 起始地址

  • end (可选): 结束地址

默认反汇编当前函数。

gdb_commandA

直接执行GDB Machine Interface (MI)命令。

参数:

  • command: MI命令 (以 - 开头,如 -break-list, -exec-run)

  • waitForDone (可选): 是否等待完成响应 (默认true)

示例:

  • gdb_command({command: "-break-list"}) → 列出所有断点

  • gdb_command({command: "-exec-run"}) → 运行程序

高级用法:当其他工具不支持特定操作时使用。

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/zjm1060/gdb-mcp'

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