You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JetBrains CLion中搭建RISCV Spike的GDB调试链路?

解决CLion调试RISC-V SPIKE时强制要求TCL_PORT的问题

问题根源

CLion的OpenOCD调试模块依赖OpenOCD的TCL控制端口完成IDE与调试器的交互(比如获取目标架构信息、管理调试会话),这是IDE层面的设计要求,和GDB直接连接OpenOCD的GDB端口的逻辑不同。

解决方案步骤

  1. 启动OpenOCD时显式指定TCL端口
    修改OpenOCD启动命令,强制开启TCL端口(端口号可自定义,只要不与系统其他服务冲突),示例命令:

    openocd -f <你的SPIKE适配配置文件> -c "gdb_port 3973" -c "tcl_port 6333" -c "telnet_port disabled"
    

    启动后检查OpenOCD日志,确认出现以下两行输出,说明端口已正常监听:

    Listening on port 6333 for tcl connections
    Listening on port 3973 for gdb connections

  2. 配置CLion的OpenOCD调试项

    • 打开CLion的调试配置界面,选择已创建的「OpenOCD下载」配置;
    • 确认已正确指定OpenOCD二进制文件路径;
    • 在「OpenOCD Options」或「Additional Arguments」中,添加-c "tcl_port 6333"(和启动命令中的端口保持一致);
    • 保存配置后重新启动调试会话。
  3. 弃用远程调试配置
    SPIKE的RBB端口并非标准GDB服务器,必须通过OpenOCD中转,因此CLion的「远程调试」配置不适用,应专注调整OpenOCD相关配置。

额外提示

  • 如果不需要Telnet端口,启动命令中加入-c "telnet_port disabled"可以避免不必要的端口占用;
  • 若端口冲突,可更换为其他未被占用的端口号(比如6334、6335等),确保OpenOCD启动命令和CLion配置中的端口一致即可。

内容的提问来源于stack exchange,提问作者Pope B.Lei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 15:52:36