后端与接口
需要通过 J-Link 探针调试 Cortex-M…
有带符号 ELF 和 SEGGER J-Link 探针时,通过 JLinkGDBServer 与 GDB 完成固件下载、在线调试、崩溃现场检查或 SWO 输出捕获。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要通过 J-Link 探针调试 Cor特定
解决思路
- 先阅读 references/usage.md,确认本次是环境探测,还是执行调试会话。
- 若不确定环境是否就绪,先运行 scripts/jlink_debugger.py 的 --detect 模式确认。
- 根据用户意图选择调试模式:download-and-halt(默认)、attach-only 或 crash-context;只有用户显式要求附着调试或崩溃现场检查时才切换。
- 使用 --elf + --device 启动调试,可选 --interface 和 --port。
- 使用 --device 指定目标芯片型号(J-Link GDB Server 要求必须指定)。
- GDB 由脚本自动探测,优先级为:显式用户输入、Project Profile、arm-none-eabi-gdb、gdb-multiarch。
- JLinkGDBServer 按配置文件、PATH、常见安装路径顺序查找。
- 做符号级调试必须有 ELF;若只有 HEX 或 BIN,应阻塞并要求提供匹配 ELF。
- 需要 SWO 输出时,使用 --swo 参数。
- 读取脚本输出的调试结果,重点关注寄存器状态、回溯帧和 Fault 寄存器。
- 缺少 JLinkGDBServerCLExe 或兼容 GDB 时,返回 environment-missing。
- 没有可用 ELF 时,返回 artifact-missing。
- JLinkGDBServer 无法连接目标板时,返回 connection-failure。
- 设备名不被 J-Link 识别或配置不一致时,返回 project-config-error。
- 会话可以建立,但无法停核、加载或得到可信回溯时,返回 target-response-abnormal。
- --device 缺失且无法从工作区推断时,返回 ambiguous-context。
- JLinkGDBServer 在 Linux/macOS 下为 JLinkGDBServerCLExe,在 Windows 下为 JLinkGDBServerCL.exe。
- 默认 GDB 端口为 2331(J-Link 默认),可通过 --port 修改。
- 自带脚本使用 Python 标准库和 subprocess,跨平台兼容。
- SWO 功能为 J-Link 独有,可捕获 ITM printf 输出。
- 输出调试模式、JLinkGDBServer 命令、GDB 可执行文件、ELF 路径和关键观察结论。
- 在 Project Profile 中保留 artifact_path、artifact_kind、gdb_executable、jlink_device。
- 当复位后或继续运行后下一步是观察运行行为时,推荐 serial-monitor。
- 当目标恢复运行后,需要继续观察运行期日志时,将成功会话交给 serial-monitor。
- 当用户需要 RTOS 线程感知调试时,将会话交给 rtos-debug。
适用边界 · 注意事项
- 没有 SEGGER J-Link 探针、JLinkGDBServer 或兼容 GDB 环境时。
- 只有 HEX 或 BIN 而没有匹配的带符号 ELF 时,无法做符号级调试。
- 需要 RTOS 线程感知调试时,应交给 rtos-debug。