其他
需要在线调试 PlatformIO…
当工程为 PlatformIO(存在 platformio.ini 或 build_system: platformio)且需要对目标板做 GDB 在线调试或崩溃现场分析时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 38/100 ×0.15
适用场景
需要在线调试 PlatformIO 工程特定
解决思路
- 确认工程属于 PlatformIO:Project Profile 中标明 build_system: platformio,或工作区存在 platformio.ini。
- 准备必要输入:PlatformIO 工程目录(包含 platformio.ini),以及可选的环境名称和调试模式。
- 自动定位 pio CLI。
- 解析 platformio.ini 中的 debug_tool 配置。
- 由 PlatformIO 自动管理调试服务器(OpenOCD/pyOCD/J-Link GDB Server),无需手动配置。
- 先阅读 references/usage.md,确认本次操作。
- 探测调试环境:python scripts/pio_debugger.py --detect --project-dir <工程目录> --env <环境名>。
- 执行调试:python scripts/pio_debugger.py --project-dir <工程目录> --env <环境名> --mode download-and-halt。
- 使用 download-and-halt 模式:下载固件到目标板,暂停在入口点,输出寄存器和回溯信息。
- 使用 attach-only 模式:附加到正在运行的目标,不下载固件,输出当前状态。
- 使用 crash-context 模式:暂停目标,读取寄存器、完整回溯和 Cortex-M Fault 寄存器(CFSR/HFSR/MMFAR/BFAR)。
- 按 connection-failure 分流:调试器未连接或设备无响应。
- 按 debug-not-supported 分流:板卡不支持调试或未配置 debug_tool。
- 按 debug-failure 分流:调试会话异常终止。
- 按输出约定汇报:调试完成 ✅、工程 → 环境、板卡、调试工具、模式、关键观察条数(寄存器、回溯帧)。
- 衔接上下游:从 build-platformio 接收编译成功的工程信息;调试发现问题后回交给 build-platformio 修改代码重新编译。
适用边界 · 注意事项
- 工程不是 PlatformIO(无 platformio.ini 且 build_system 不是 platformio)。
- 板卡不支持调试或未配置 debug_tool。
- 只需要编译构建、不需要在线调试或崩溃分析(应改用 build-platformio)。