clion+gdbserver远程调试

clion+gdbserver远程调试

因为嵌入式开发板上没有ide,自己又不会在终端中使用gdb调试。不过现在的ide可以gdbserver来远程调试开发板上的程序,我个人很喜欢使用clion,记录一下clion+gdbserver远程调试。

依赖环境

嵌入式开发板:

  • gdbserver(这个是必须要安装)
  • open-ssh(如果是使用clion的话这个必须要安装,如果用vscode这个也不需要安装)
  • rsync(如果单纯只是调试的话,可以不需要,安装了这个可以自动上传可执行程序)

pc:

  • clion
  • 交叉编译器
  • cmake
  • docker(docker是用来方便自己在开发板上安装open-ssh的)

注意事项

如果想要调试的时候不出现乱跳以及变量信息的查看需要注意:

  1. cmakelist中需要添加 add_definitions("-g”) 为了保留调试信息
  2. cmakelist 关闭编译优化 即将 -O3 优化 替换成 -O0 (使用ide远程调试的时候改好,正式发布的时候再改回来即可)

clion 配置 远程调试环境

  1. 点击 Run 再点击 Edit Configurations
  2. 点击 + 新增一个 Remote GDB Server 配置
  3. 配置相关设置,下面是我自己的配置

说明:

  • 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
  1. 开发板环境变量的设置
    有时候可执行程序还链接一些库,如果使用gdbserver调试会出现找不到该库,这个时候可以在高级选项中修改 Environment Variables

点击+新增一个环境变量(多个环境变量路径用:隔开)

举例如下:

/userdata/cpp_test:/userdata/work/lib/:/userdata/opencv/lib/

最后点击OK保存所有的设置。
5. 远程调试
在clion的右上角可以选择远程调试和本地调试(带一个像虫标记的就是刚才配置好的gdbserver调试,如果不确定可以点击 Edit Configurations...来查看具体配置)

选择远程调试 然后点击调试(就是那个像虫一样的按钮)

最后就是享受 IDE调试的愉悦。

posted @ 2021-01-28 17:41  cc96  阅读(4402)  评论(2编辑  收藏  举报