CLion编辑代码+远程主机编译+开发板调试

您所在的位置:网站首页 betaflight源码编译 CLion编辑代码+远程主机编译+开发板调试

CLion编辑代码+远程主机编译+开发板调试

2023-05-09 10:50| 来源: 网络整理| 查看: 265

前言:本文旨在帮助需要在远程主机编译程序,又在另一远程系统(比如开发板)调试程序的朋友,讲解了CLion的关键配置,实现本地编辑程序,上传到服务器编译,把可执行文件下载到本地,debug时上传到开发板,配合开发板中的gdb server进行调试。如何配置交叉编译工具链、开发板安装gdb server等请自行查阅其他地方。

CLion官方帮助文档:Complicated remote scenarios | CLion Documentation (jetbrains.com),JetBrains自家的文章写的也很清楚了,有兴趣的朋友可以直接看英文原文。

准备环境:1、CLion软件:下载 CLion:用于 C/C++ 开发的智能跨平台 IDE (jetbrains.com)。2、交叉编译环境,比如ubuntu主机+arm-xx-gcc,ubuntu主机需要安装较新版本的cmake,ubuntu自带的cmake版本太低,可能无法配置成功。3、开发板带有gdb server。

正文

1、CLion配置交叉编译工具链。

配置之前,先创建一个“C Executable”工程,并创建一个debug目录,放置之后编译好的可执行文件。

参考配置:Name:工具链名称。Credentials:连接ubuntu主机的凭据。C Compiler:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/arm-buildroot-linux-gnueabihf-gccC++ Compiler:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/arm-buildroot-linux-gnueabihf-g++

配置工具链

配置完工具链后,我们还要将其设置为当前项目的CMake工具。

配置CMake

2、编译可执行文件并下载到本地。

工具链配置好之后,我们点击右上角的“编译”(小锤子)按钮。成功编译后,我们可以看到如下信息:可执行文件的名称就是当前工程的名称“Remote_GDB_ARM_Board”。

Build

接着,我们可以直接在CLion打开一个终端,用scp命令下载到当前工程的debug目录。

参考命令:scp [email protected]:/tmp/tmp.qlQJ83CF4j/cmake-build-debug-arm-build-tencentcloud/Remote_GDB_ARM_Board debug

可以通过配置密钥对的方法,来实现免密连接服务器,有关配置请查阅其他文章。

scp连接

scp成功下载

3、CLion配置开发板的gdb server。

接下来,我们点击顶部工具栏“编译按钮”左侧的下拉框,点击“Edit Configurations“。

Build——Edit Configurations

左上角“+”号,选择新增一个“Remote GDB Server”。

Remote GDB Server

然后填写红框中的内容:Name:随便,可以写gdb server。Executable:就选择我们之前下载到debug目录的可执行文件。Credentials:填写连接开发板的凭据。Upload Path:选择上传到开发板的目录。target remote args:gdb server IP+端口号。

新增gdb server

下面是我自己的配置。

gdb server

4、配置“Run external tool”,用 scp 下载文件到本地。(非必要

添加玩gdb server的信息后,下方的“before launch”,我们新增一个外部工具,每次启动调试前执行scp命令,从服务器下载可执行文件。前提是我们实现了免密登录服务器,否则执行scp无法输入密码,这个“Run external tool”是无法成功执行的,调试也跑不起来。或者我们每次手动在终端执行scp,就可以输入密码了。

新增 Run External tool 新增 Run External tool

Name:copy_binary。Program:scpArguemnts:[email protected]:/tmp/tmp.qlQJ83CF4j/cmake-build-debug-arm-build-tencentcloud/Remote_GDB_ARM_Board debug

切换到gdb sever的配置

配置完成后,我们先切换到gdb sever的配置,然后打个断点,调试下试试,如下图:

停止在断点处

5、使用gdb server时如何传入程序参数。

还是编辑gdb server的配置页面,然后我们填写“GDB Server args”,用逗号分隔“:1234 /mnt/sd/Remote_GDB_ARM_Board /dev/input/event0”,即”:端口号 可执行文件 程序参数“。

启动调试程序时的传参

参考文献:Complicated remote scenarios | CLion Documentation (jetbrains.com)Specify "Program Arguments" in "Remote GDB Server" : CPP-22678 (jetbrains.com)External tools | CLion Documentation (jetbrains.com)Remote SSH External Tools | CLion Documentation (jetbrains.com)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3