clion+gdbserver远程调试
clion+gdbserver远程调试
因为嵌入式开发板上没有ide,自己又不会在终端中使用gdb调试。不过现在的ide可以gdbserver来远程调试开发板上的程序,我个人很喜欢使用clion,记录一下clion+gdbserver远程调试。
依赖环境
嵌入式开发板:
- gdbserver(这个是必须要安装)
- open-ssh(如果是使用clion的话这个必须要安装,如果用vscode这个也不需要安装)
- rsync(如果单纯只是调试的话,可以不需要,安装了这个可以自动上传可执行程序)
pc:
- clion
- 交叉编译器
- cmake
- docker(docker是用来方便自己在开发板上安装open-ssh的)
注意事项
如果想要调试的时候不出现乱跳以及变量信息的查看需要注意:
- cmakelist中需要添加 add_definitions("-g”) 为了保留调试信息
- cmakelist 关闭编译优化 即将 -O3 优化 替换成 -O0 (使用ide远程调试的时候改好,正式发布的时候再改回来即可)
clion 配置 远程调试环境
- 点击 Run 再点击 Edit Configurations
- 点击 + 新增一个 Remote GDB Server 配置
- 配置相关设置,下面是我自己的配置
说明:
- Target: 构建的目标
- Execute: 执行程序
- Credentials: 与开发板连接的凭证(旁边的设置按钮用来设置ssh连接)
- Upload Execute: 选择上传程序的方式(clion会将pc上编译好的程序上传到开发板,如果开发板上没有rsync 则自己手动上传)
- Upload Path: 上传程序的路径(这里的路径指的是开发板上的路径,如果是自己手动上传,就改成自己手动上传的路径)
- GDB Server args: gdbserver命令的参数(主要 ip(ip不填则是默认开发板ip)+端口号+可执行程序+程序参数)
举例如下所示
192.168.53.53:1234 /root/client /userdata/test_demo/model.bin /userdata/test_demo/image
- 开发板环境变量的设置
有时候可执行程序还链接一些库,如果使用gdbserver调试会出现找不到该库,这个时候可以在高级选项中修改 Environment Variables
点击+新增一个环境变量(多个环境变量路径用:隔开)
举例如下:
/userdata/cpp_test:/userdata/work/lib/:/userdata/opencv/lib/
最后点击OK保存所有的设置。
5. 远程调试
在clion的右上角可以选择远程调试和本地调试(带一个像虫标记的就是刚才配置好的gdbserver调试,如果不确定可以点击 Edit Configurations...来查看具体配置)
选择远程调试 然后点击调试(就是那个像虫一样的按钮)
最后就是享受 IDE调试的愉悦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架