Token导航 LogoToken导航TokenDH.com
Lauterbach Trace32 MCP logo
开发工具stdio官方级别未说明来源级核验

Lauterbach Trace32 MCP

MCP Server

一个将Lauterbach TRACE32调试器控制功能暴露为AI助手工具的Model Context Protocol (MCP)服务器,支持通过自然语言控制调试会话。

工具数

51

提示词数

0

GitHub Stars

16

资源数

0
调试工具PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

hsoffar

提供方

hsoffar

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install lauterbach-trace32-rcl

详细介绍

洛特巴赫-曲马多

A. 模型上下文协议(MCP) 暴露的服务器 劳特巴赫TRACE32 调试器控件作为人工智能的工具 助理(克劳德、GPT-4等)。

连接后,您的AI助手可以通过自然方式控制实时TRACE32会话 语言:设置断点、读取寄存器、检查内存、遍历代码、运行 练习脚本等。

______________________________________________________________________

特性

12个类别的51个工具:

类别工具
连接connect, disconnect, ping, get_state, get_message
执行控制go, break_, step, step_asm, step_hll, step_over, go_up, go_return
实践run_command, evaluate_function, run_practice_script
记忆read_memory, read_memory_typed, write_memory_typed
登记簿read_register, read_all_registers, write_register
断点set_breakpoint, list_breakpoints, delete_breakpoint
变量read_variable, write_variable
符号query_symbol_by_name, query_symbol_by_address
实践宏get_practice_macro, set_practice_macro
复合/高级get_context, get_source_location, evaluate_expression, get_system_info, read_string, dump_memory_formatted, write_memory, backtrace, disassemble, set_breakpoint_at_symbol, run_until, snapshot, list_functions, list_global_variables, search_memory
文件list_trace32_docs, search_trace32_docs
外围设备(PER)list_per_files, load_per_file, per_read_register

MCP资源:

  • trace32://docs/ --带文本提取的TRACE32 PDF文档
  • trace32://hints --用户提供的调试提示

结构化错误处理 为每个TRACE32提供可操作的建议 异常类型。

内置服务器说明 教授LLM TRACE32概念:目标状态, 地址类、调试符号要求、常见工作流和有用的实践 功能。

非阻塞自动连接启动 --服务器立即向MCP客户端注册 并在后台自动连接到TRACE32。如果TRACE32未运行, 服务器保持可用,您可以稍后通过 connect 工具。

______________________________________________________________________

先决条件

  • Python 3.10或更高版本
  • 劳特巴赫TRACE32 随着 远程应用程序接口 启用
  • lauterbach-trace32-rcl Python包(pyrcl)——通过pip安装:
  pip install lauterbach-trace32-rcl

启用TRACE32远程API

将以下内容添加到TRACE32启动脚本中(config.t32 或同等):

RCL=NETASSIST
PACKLEN=1024
PORT=20000

进行此更改后重新启动TRACE32。

______________________________________________________________________

安装

来自GitHub

pip install git+https://github.com/hsoffar/lauterbach-trace32-mcp.git

来源(可编辑)

git clone https://github.com/hsoffar/lauterbach-trace32-mcp.git
cd lauterbach-trace32-mcp
pip install -e .

使用紫外线

uv tool install git+https://github.com/hsoffar/lauterbach-trace32-mcp.git

______________________________________________________________________

用法

直接运行

# Connect to TRACE32 on localhost:20000 (default)
lauterbachdebugger-mcp

# Custom host/port
lauterbachdebugger-mcp --host 192.168.1.100 --port 20000

# With TRACE32 installation path and user hints
lauterbachdebugger-mcp --t32-dir ~/t32 --hints ~/.trace32-hints.md

# Verbose logging
lauterbachdebugger-mcp -v

# Or via Python module
python -m lauterbachdebugger_mcp

CLI选项

选项环境变量默认描述
--host-HT32_HOSTlocalhostTRACE32主机名或IP
--port-pT32_PORT20000远程API端口
--protocolT32_PROTOCOLTCPTCPUDP
--timeoutT32_TIMEOUT60.0连接超时(秒)
--t32-dirT32SYS~/t32TRACE32安装目录(C:\T32\ 在Windows上)
--hintsT32_HINTS提示文件或目录(请参见 代理商.md 公约)
--cache-dirT32_CACHE_DIR~/.cache/lauterbach-t32-mcpPDF到文本缓存目录
--verbose-voff重复以获取更多详细信息(-vv)

______________________________________________________________________

客户端配置

克劳德代码

claude mcp add --transport stdio lauterbach-trace32 \
  --env T32_HOST=localhost \
  --env T32_PORT=20000 \
  --env T32SYS=~/t32 \
  --env T32_HINTS=/path/to/hints.md \
  -- lauterbachdebugger-mcp

或使用 python -m (不需要路径):

claude mcp add --transport stdio lauterbach-trace32 \
  --env T32_HOST=localhost \
  --env T32_PORT=20000 \
  -- python -m lauterbachdebugger_mcp

克劳德桌面版

编辑 %APPDATA%\Claude\claude_desktop_config.json (Windows)或 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "lauterbach-trace32": {
      "command": "lauterbachdebugger-mcp",
      "env": {
        "T32_HOST": "localhost",
        "T32_PORT": "20000",
        "T32_PROTOCOL": "TCP",
        "T32SYS": "~/t32",
        "T32_HINTS": "/path/to/hints.md"
      }
    }
  }
}

VS代码/光标/风帆

添加 .vscode/mcp.json 在您的工作区(或用户设置)中:

{
  "servers": {
    "lauterbach-trace32": {
      "type": "stdio",
      "command": "lauterbachdebugger-mcp",
      "env": {
        "T32_HOST": "localhost",
        "T32_PORT": "20000",
        "T32SYS": "~/t32",
        "T32_HINTS": "/path/to/hints.md"
      }
    }
  }
}

OpenAI代理SDK(Codex)

from agents import Agent, MCPServerStdio
import asyncio

async def main():
    async with MCPServerStdio(
        command="lauterbachdebugger-mcp",
        env={"T32_HOST": "localhost", "T32_PORT": "20000"},
    ) as server:
        agent = Agent(name="debugger", mcp_servers=[server])
        # agent is now aware of all TRACE32 tools

asyncio.run(main())

______________________________________________________________________

工具参考

连接

connect

连接到TRACE32调试器。如果后台自动连接仍然存在 挂起或失败,取消并重新连接。使用CLI默认值 当省略参数时。

参数类型默认值说明
node字符串localhost主机名或IP
port整数20000远程API端口
protocolTCPUDPTCP传输协议
timeout编号60.0超时时间(秒)

disconnect

断开与调试器的连接并释放资源。

ping

验证连接是否处于活动状态。

get_state

将当前调试状态返回为 { state: int, state_name: string }.

名称含义
0stopped目标已停止/未运行
1running目标运行
2halted在断点处停止
3background_running在后台模式下运行

get_message

返回TRACE32消息行中显示的最后一条消息,如下所示 { text, type }.

______________________________________________________________________

执行控制

所有执行控制工具都返回包含PC、函数名称、, 操作完成后显示源代码、源文件和源代码行。

工具说明
go开始/恢复执行
break_停止执行
step单步(HLL或ASM,取决于上下文)
step_asm单个装配说明步骤
step_hll单源级(HLL)步骤
step_over跳过函数调用
go_up运行直到从当前函数返回
go_return立即从当前功能返回

______________________________________________________________________

练习命令和脚本

run_command

执行任何TRACE32 PRACTICE命令字符串。

run_command("SYStem.Up")
run_command("Data.dump 0x20000000")
run_command("Register.Set PC 0x0")

evaluate_function

计算PRACTICE函数表达式并返回结果。

evaluate_function("STATE.RUN()")
evaluate_function("Register(PC)")
evaluate_function("Var.VALUE(myVar)")

run_practice_script

运行CMM脚本文件(阻塞)。

参数类型必填说明
script_pathstringyes路径和可选参数,例如。 C:/init.cmm arg1
timeoutnumberno等待秒数;省略无限期等待

______________________________________________________________________

记忆

read_memory

读取原始字节。退货 { address, length, hex, bytes[], ascii }.

参数类型说明
addressstring例如。 0x20000000D:0x1000 (带访问类)
lengthinteger字节数

read_memory_typed

读取类型化标量值。

参数类型说明
addressstring目标地址
type字符串int8 uint8 int16 uint16 int32 uint32 int64 uint64 float double
byteorder字符串little (默认)或 big

write_memory_typed

写一个类型化标量值。参数与 read_memory_typedvalue.

______________________________________________________________________

寄存器

read_register

按名称读取单个寄存器。退货 { name, unit, core, value }.

参数类型说明
namestring例如。 PC, SP, LR, R0
coreinteger核心编号(可选,适用于多核)

read_all_registers

读取所有寄存器,可选择按以下方式过滤 coreunit (CPU, FPU, VPU).

write_register

将值写入寄存器。

______________________________________________________________________

断点

set_breakpoint

参数类型默认值说明
addressstring--例如。 0x08000100
type字符串PROGRAMPROGRAM READ WRITE RW
impl字符串AUTOAUTO SOFT ONCHIP HARD MARK
sizeinteger--大小(字节)(可选)
coreinteger--核心(可选)
enabled布尔值true是否启用

返回断点地址处具有符号解析的丰富响应。

list_breakpoints

返回包含符号信息的当前设置的所有断点的列表。

delete_breakpoint

删除给定位置的断点 address.

______________________________________________________________________

变量

read_variable

按名称读取源代码级变量。需要加载调试符号。

read_variable("myGlobalVar")
read_variable("myModule\\myStaticVar")

write_variable

将值写入源代码级变量。接受整数或浮点数。

______________________________________________________________________

符号

query_symbol_by_name

按名称查找函数、变量或标签。退货 { name, path, address, size }.

query_symbol_by_address

在给定的目标地址查找符号。

______________________________________________________________________

实践宏

get_practice_macro

获取全局PRACTICE宏变量的当前值(不带前导 &).

set_practice_macro

设置全局PRACTICE宏变量的值。

______________________________________________________________________

复合/高级工具

这些工具将多个TRACE32操作组合成一个上下文丰富的单一操作 响应。所有使用优雅降级——子操作中的部分失败 不要破坏整体结果。

get_context

完整CPU上下文快照:状态、PC、SP、LR、当前功能、源位置、, 以及CPU名称。可选的 core 多核目标的参数。

get_source_location

地址的源文件和行(默认为当前PC)。

evaluate_expression

计算C/C++表达式。返回值、类型和十六进制表示。 支持 format 参数: decimal, hex,或 string.

get_system_info

目标系统信息:CPU名称、系列、端序、电源状态、目标状态。

read_string

从目标内存中读取以null结尾的C字符串。可选的 max_length (默认值为256)。

dump_memory_formatted

十六进制+ASCII内存转储(如 hexdump).可选的 length (默认值为256)。

write_memory

将原始字节(十六进制字符串)写入目标内存。

backtrace

遍历调用堆栈并返回具有源分辨率的帧信息。 可选的 depth (默认值为20)。

disassemble

在某个地址(默认为PC)上拆卸说明。可选的 count (默认值10)。

set_breakpoint_at_symbol

按函数或标签名称设置断点(例如。 main).

run_until

运行到有超时的地址或符号。使用临时断点。 可选的 timeout 以秒为单位(默认值为10)。

snapshot

完整状态捕获:上下文+回溯+断点列表+系统信息。 可选的 include_registers (默认为false)。

list_functions

浏览功能符号。可选的 filter (通配符), limit (默认值为100)。

list_global_variables

浏览全局变量符号。参数与 list_functions.

search_memory

在内存范围内搜索字节模式。

参数类型说明
start_addressstring搜索范围的开始
end_addressstring搜索范围结束
patternstring十六进制字节模式,例如。 DEADBEEF

______________________________________________________________________

文档工具

list_trace32_docs

列出T32安装中可用的TRACE32 PDF文档文件。 可选的 category 过滤器(例如。 debugger, rtos, practice).

search_trace32_docs

按关键字搜索文档文件名。

______________________________________________________________________

外围寄存器工具

list_per_files

列表可用 .per T32安装中的(外围设备描述)文件。 从中提取标题 ; @Title: 在文件头中添加注释。 可选的 filter 用于子字符串匹配。

load_per_file

通过以下方式将PER文件加载到TRACE32中 PER.Program 命令。路径可以是绝对的 或者相对于T32安装目录。

per_read_register

读取并解码外围寄存器值。需要先加载PER文件。

参数类型默认值说明
addressstring--注册地址
access_width字符串longbyte, word,或 long

______________________________________________________________________

MCP资源

文件(trace32://docs/)

T32安装中的每个PDF pdf/ 目录作为MCP公开 资源。读取时,服务器使用以下命令提取文本 pdftotext 如果可用, 否则返回文件路径。

用户提示(trace32://hints)

从加载的用户提供的调试提示 --hints-dir--hints-file. 提示在启动时自动嵌入MCP服务器指令中, 因此LLM立即看到它们,而无需任何额外的获取。他们也是 可用作MCP资源(trace32://hints)在会议中途重读。

通过MCP客户端中的CLI标志或环境变量配置提示 config(见下面的示例)。

提示文件格式

使用调试提示创建markdown文件:

# My TRACE32 Debugging Tips

## I2C Debugging
When debugging I2C on our custom board, always check the pull-up
resistor configuration first. Use PER.view with the I2C peripheral
file to verify SCL/SDA pin muxing.

## Flash Programming Workflow
1. Run SYStem.Up to connect
2. Load flash algorithm: FLASH.Create ...
3. Program: FLASH.Program ALL /Erase
4. Verify: Data.LOAD.ELF  /ComPare

根据您的提示,向服务器指示 --hints-file--hints-dir:

lauterbachdebugger-mcp --hints-file ~/.trace32-hints.md
lauterbachdebugger-mcp --hints-dir ~/.trace32-hints/

______________________________________________________________________

错误处理

服务器提供结构化错误响应,并提供可操作的建议 对于每种TRACE32异常类型:

例外建议
未连接呼叫 connect 工具优先
CommandError检查命令语法
FunctionError功能可能不存在或目标未停止
MemoryReadAccessError停止目标,检查地址/访问类
MemoryWriteAccessError区域可以是只读的或受保护的
VariableError确保调试符号已加载且目标已停止
SymbolError确保加载调试符号
RegisterError停止目标,检查注册名称
ApiConnectionError连接丢失,请尝试重新连接
BreakpointError检查地址和断点类型

______________________________________________________________________

发展

git clone https://github.com/hsoffar/lauterbach-trace32-mcp.git
cd lauterbach-trace32-mcp

# Install with dev dependencies
pip install -e ".[dev]"
# or with uv
uv sync --group dev

# Run tests
pytest

# Lint & type-check
ruff check src/
pyright src/

______________________________________________________________________

许可证

麻省理工学院——见 许可证.

目录标签

目录标签

调试工具PythonClaude本地部署AI集成嵌入式开发远程调试自动化测试

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

51

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP