Skip to content
| Marketplace
Sign in
Visual Studio Code>Debuggers>usbtracePlus 采集分析New to Visual Studio Code? Get it now.
usbtracePlus 采集分析

usbtracePlus 采集分析

Aaronlu2026

| (0) | Free
usbtracePlus 采集分析工具的 VS Code 面板:抓取 VCD 波形与 LOG 日志两大类数据,解码为标准 VCD,做确定性事实提取与断言检查。内置同名命令行 usbtraceplus,全命令支持 --json,便于脚本与 AI 自动化。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

usbtracePlus 采集分析

面向嵌入式调试的 usbtracePlus 采集分析工具:从目标板抓取 VCD 波形与 LOG 日志两大类数据, 解码成标准 VCD,做确定性的事实提取与断言检查。

同一套引擎,两种用法:本扩展的图形面板,以及内置的命令行 usbtraceplus (全命令支持 --json,适合脚本与 AI 自动化)。两者读写同一份配置文件, 面板里设好参数后,命令行未显式指定的选项会自动取配置文件里的值 (子命令本身仍要给出,例如 usbtraceplus capture vcd)。

术语

  • usbtracePlus —— 本工具链的统称,涵盖下面两大类。
  • VCD —— 波形类。来自 USB trace 字流,解码为标准 VCD 文件。
  • LOG —— 日志类。来自接口 0 的 HCI/debug 日志。

文中出现「usbtracePlus」时指整体,「VCD」「LOG」分别指其中一类。


快速开始

  1. 装好 Python 3.8+,并确保 python 在 PATH 中 (或用设置 usbtraceplus.pythonPath 指定解释器路径)。

  2. 按 Ctrl+Shift+P 运行 usbtracePlus: 自测(不接硬件),输出窗口出现 ALL PASS 即环境正常。

  3. 运行 usbtracePlus: 打开工具面板,在面板左侧:

    要选什么 选什么
    文件命名参照 一个 bin 文件(只用于命名产物,不要求文件存在)
    信号参考文件 你的 def.h(决定能解析出哪些信号)
    分析规则文件 断言规则 spec.json

    再确认**系统时钟频率(MHZ)**与固件一致。

  4. 在停止设置 → VCD 把「时长(秒)」设为 3,点 VCD采集。

  5. 点 打开 VCD 看波形,点 分析 生成分析报告。

装好插件后会自动弹出分步引导(也可以用命令面板运行 Welcome: Open Walkthrough 找到 「usbtracePlus 快速上手」)。更详细的说明见下方文档。


功能

采集

  • VCD 采集 —— 边采边解码为标准 VCD,GTKWave 可直接打开。 默认 4 路并发重叠读可跑满链路(~185 字/ms);也可用 --decode-after 把解码 完全挪到采集之后(--readers 1 退回旧单读路径)。
  • LOG 采集 —— 从 interface 0 读取 HCI/debug 日志,实时解析滚动显示并写文件。
  • 两路独立可并行,也可用「联动停止」让一侧停止时带动另一侧。
  • 停止方式:VCD = 时间 / task 信号触发;LOG = 时间 / 字符串触发。 两者都支持按钮强制停止,按钮永远最高优先级。
  • 时长为 0 表示不限,一直采到点停止。
  • 支持未上电等待与断线自动重连;时长从设备首次就绪开始算, 所以「先启动采集、再给设备上电」能采到完整时长(抓启动过程就靠这个)。

分析

  • 波形分析 —— 信号/事件统计、周期与抖动、脉冲宽度、多 bit 单调性、 关联 LOG 的标签趋势。确定性事实提取,不做启发式结论,结论留给人或 AI。
  • 日志对时刻 —— LOG 记录自带设备 tick,采集收尾时挂到 VCD 时间轴上 (行尾 @t=),可直接和波形的 #<us> 对照,不必再靠主机钟粗对。 对不上的(采集前积压在 USB FIFO 里的那批,其主机时刻是「倒出时刻」而非产生时刻) 留空不猜,并报出可对齐区间。
  • 断言检查 —— 按 spec 校验事件是否存在、周期是否达标、时序先后、事件时刻的信号取值。
  • LOG 规则检测 —— 8 类可配置规则(关键字、序号跳变、标签缺失、计数上下限、 数值范围、趋势、静默间隔、解析失败)。

自动化

  • 内置命令行 usbtraceplus,全命令 --json(stdout 只输出一个 JSON 对象)、退出码统一。
  • usbtraceplus run 一键跑完 采集 → 分析 → 断言。
  • usbtraceplus schema --json 自描述命令目录。

常见问题

症状 先查什么
一直「等待设备上电...」 板子是否上电、USB 是否接好、VID/PID 是否对(用 usbtracePlus: 设备信息 确认)
采集到 0 字节 设备没被识别到 / 固件没在跑 —— 用 usbtracePlus: 设备信息 确认设备在线,核对 VID/PID
所有时间成比例偏大/偏小 系统时钟频率是否与固件配置一致
task 信号下拉框是空的 信号参考文件是否还指向内置示例 —— 点「浏览...」选中你自己的 def.h
「打开 VCD」提示文件不存在 还没采集过
改动参数后命令行没生效 是否取消了「自动保存」—— 勾回,或点「保存配置」
提示找不到 Python 安装 Python 3.8+,或在设置里填 usbtraceplus.pythonPath

采集与设备枚举仅支持 Windows(通过 usbprint.sys 访问目标板)。 解码、分析、断言、自测跨平台可用。


命令行

装了扩展后,CLI 会被落位到不含版本号的稳定路径,扩展升级后依然有效: ~/.usbtraceplus/usbtraceplus(Windows 为 %USERPROFILE%\.usbtraceplus\usbtraceplus.cmd)。

~/.usbtraceplus/usbtraceplus doctor --json

没配过的话 doctor 会返回 ready: false 并列出 blockers(缺什么、怎么修), 而不是「全部通过」。只做分析不做采集时用 doctor --for analyze。

不确定路径在哪时,运行命令 usbtracePlus: CLI 路径。 从源码仓库开发时也可直接用仓库根的 ./usbtraceplus。

常用命令:

usbtraceplus doctor --json                 # 自检:ready=true 才表示「可以采集」
usbtraceplus run --seconds 3 --json        # 一键:并行采集 → 分析 → 断言
usbtraceplus capture log --stop-string ASSERT --json
usbtraceplus analyze vcd --with-check --json

退出码统一:0 成功 / 1 断言失败 / 4 仅日志规则命中(多为关键词误报)/ 2 用法错误 / 3 运行时错误。run 的 summary.verdict 会直接给出结论。

完整命令、参数、输出字段与自动化配方 → python/CLI.md


文档

装好插件后,点采集面板顶部的 「帮助文档」 按钮即可打开下面两份文档, 也可以从命令面板运行:

命令 内容
usbtracePlus: 使用指南 界面详解、操作步骤、产物读法、断言与规则写法、故障排查、设置速查
usbtracePlus: 命令行参考 全部命令/参数/输出字段、退出码、自动化配方

在线版本:

文档 讲什么
UserGuide.md 怎么用:界面详解、操作步骤、产物说明、故障排查、设置速查
python/CLI.md 命令行参考:全部命令/参数/输出字段、退出码、自动化配方
CHANGELOG.md 版本变更记录

设置

设置项 说明
usbtraceplus.pythonPath Python 解释器路径(留空则自动探测 python / python3 / py -3)

其余参数(时钟频率、VID/PID/设备编号、文件路径、停止方式、联动停止、自动化模式等) 保存在工作区 .vscode/usbtraceplus.json,与命令行共用同一份。

面板上的「自动保存」(默认勾选)会在参数变更时立即写盘;取消勾选时,点「保存配置」 或任意采集/分析操作同样会保存。


目录结构

usbtraceplus / usbtraceplus.cmd  命令行入口(转发到 python/usbtraceplus_cli.py)
python/                          Python 引擎(命令行与扩展共用)
  usbtraceplus_cli.py            唯一 CLI 入口
  cliutil.py                 输出信封、退出码、错误模型
  usbcapture.py              usbtracePlus 采集传输层(VCD + LOG)/ 设备枚举(Windows)
  tracevcd.py                字流 → VCD 解码器
  logparse.py                LOG 包解析
  loganalysis.py             LOG 事实提取 + 规则引擎
  analyze_vcd.py             波形事实提取
  vcdcheck/vcdcheck.py       断言引擎
  config.py                  配置读写、路径解析
src/                         VS Code 扩展(TypeScript)
  extension.ts  commands.ts  captureManager.ts  configFile.ts  cli.ts  python.ts
  webview/                   面板 UI 与 webview 资源
  walkthrough/               首次安装引导的 markdown
scripts/                     构建脚本

构建(开发)

npm install
npm run compile        # tsc 编译 + 复制 Python 脚本/静态资源/文档到 resources/
npm run package        # 产出 usbtraceplus-x.x.x.vsix
  • scripts/copy-assets.js 决定哪些 Python 模块与文档进 .vsix; 新增模块或文档必须同步加进去,否则打包出的扩展会缺文件。
  • resources/ 与 out/ 是构建产物(已 gitignore),每次构建会重建。
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft