使用Clion远程自动同步和远程调试c++

摘要:在linux上用vim写C++的时候,通常用gdb进行调试,不能随心所欲的看代码和跳转代码以及加watch(也有可能是因为我还没有get正确的使用方法)。为此我发现Clion可以做到自动同步本场代码或自己下载远程代码同步到本地,以及调试在远程机器上运行的代码,为此记录下来。

简介

CLion 是一款专为开发 C 及 C++ 所设计的跨平台 IDE。 它是以 IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力,从而提升工作效率 。

环境准备

  • 操作系统: macOS / Windows
  • IDE: CLion
  • 源码路径: Node Master

自动同步设置远程链接

在这里插入图片描述

  • 打开CLion的设置,进入到 Preferences | Build, Execution, Deployment
  • 点加号,添加一个远程配置
  • 设置为SFTP协议,设置远程ip、port、pass然后点击Test Connection,确认是否连接成功 设置本地与远程的连接映射
    在这里插入图片描述
  • 切换到Mappings
  • 设置本地的代码根目录Local path
  • 设置远程的代码根目录 Deployment path

在这里插入图片描述

  • 上传一个文件

  • Upload是上传,Download是下载,本地与远程所映射的目录我们在上面设置过了
    上传效果

  • 上传成功

查看更新的文件

  • runlvm.sh文件更新成功,现在的时间是3月18 21:42

设置自己同步

  • 在Tool - Deployment - Automatic Upload(always) 设置为自动同步
  • 自动同步的话可以在每次在本地改动代码的时候自己同步了
  • Sync with Deployed to 就是自动下载远程代码到本地
    在这里插入图片描述
  • 手动上传整个项目
    在这里插入图片描述
  • 上传成功,上传了100个文件
    在这里插入图片描述
  • 查看远程目录,确实成功了

好了,现在只要在本地有任何的改动都会自动同步到远程了。

远程调试

CentOS的依赖依赖

 cmake
yum install cmake -y

# gcc & gdb
yum install gcc-c++ -y
yum install gdb -y

#gdbserver
yum install gdb-gdbserver -y

添加GDB Remote Debug

本地clion配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 添加一个GDB远程调试的配置 GDB Remote Debug
  • 设置远程访问参数(target remote args):tcp:xx.xx.xx.xx:1234
  • 设置远程路径和本地路径的映射(Path mappings)
  • 远程调试连接成功后,像本地调试一样,可以设置断点,单步跟踪等
  • 调试需要本地和远程的代码一致

两个方法设置远程配置

方法一、 远程gdbserver的启动

远程调试依赖gdbserver的来支持,通过gdbserver的启动的程序,会先等待远程调试的连接,连接成功后再启动进程。

假设代码的根目录:/data/pzqu/read_phy_disk_use/,执行以下代码以后编译

cd /data/pzqu/read_phy_disk_use/build
cmake .. -DCMAKE_BUILD_TYPE=Debug
make
gdbserver :1234 ./read_phy_disk_use

注意:cmake的指定需要-DCMAKE_BUILD_TYPE=Debug来请获取调试
在这里插入图片描述
在这里插入图片描述

方法二 远程gdbserver的动态连接

gdbserver的还支持动态绑定到已经启动的进程

gdbserver :1234 --attach <PID>

attash成功后

打断点开始调试

在这里插入图片描述

  • 点击小虫子开始调试

打断点

  • 我们可以看到代码停止到了断点处
  • Variables 是可以自己设置的watch
  • 和正常调试方式一样啦

用CLion完全的在远程工作

这是一个非常非常爽的操作,以后就可以完全的用IDE来写代码了,虽然使用命令行显得比较专业,但是使用工具可以有效的提高工作效率,何乐而不为呢?
在这里插入图片描述

  • 进入 Preferences | Build, Execution, Deployment | Toolchains
  • 设置远程连接信息,CLion会自动监测CMake gcc g++ gdb的信息

设置cmake

  • 进入Preferences | Build, Execution, Deployment | CMake
  • Toolchain 选择我们刚刚设置的
  • 上面的Automatically reload CMake project on editing的设置勾上的时候,只要代码有修改就会自动编译

编译成功

  • 现在已经配置了远程Toolchains工具链并配置了相应的CMake配置文件
  • 上图是自动编译和上传到的目录/tmp/tmp.pIdETgMIBR,然后我们只要设置为自动同步目录就成了,如下图
    在这里插入图片描述
  • 现在已经设置成了自动同步目录,只需在运行/调试配置切换器中选择正确的CMake配置文件,即可以完全远程的方式构建,运行和调试应用程序和测试。

添加Application

  • 添加Application来跑我们的程序
    在这里插入图片描述

  • 远程运行,本地输出结果

在这里插入图片描述

  • 远程运行,本地自动调试

总结

  • 配置CLion中的同步信息:同步到哪台机器的哪个目录。
  • 使用 Deployment 让本地和远程可以自动同步和自动下载,手动同步和手动下载代码
  • 配置GDB remote Debug设置
  • 使用gdbserver来启动程序进行调试
  • 使用gdbserver attach依附已经启动的程序进行调试
  • 完全在本地进行远程代码调试

其他

  • 这种方式是不是非常的优雅,这样我们只要不断的添加工具链(Toolchains)就可以在本地应对数不清的远程环境了。
  • 这种方式应该适用于JetBrain全家桶
### CLion 跨平台远程开发教程配置方法 #### 支持的构建系统与版本控制 CLion不仅支持多种构建系统,包括CMake、Makefile等,也兼容版本控制系统如Git,这极大地促进了团队协作版本管理的便利性[^1]。 #### Docker WSL 支持 为了简化跨平台开发流程,CLion集成了对DockerWindows Subsystem for Linux (WSL)的支持。这意味着开发者可以在不同的操作系统之间轻松切换并保持一致的工作流。 对于希望利用这些特性来进行远程开发的具体操作指南如下: #### 配置远程主机连接 要设置CLion用于跨平台远程开发,首先需要确保目标机器已安装必要的编译器其他依赖项。接着,在本地计算机上的CLion中添加新的SSH配置文件以建立到服务器的安全链接。通过`File -> Settings/Preferences -> Build, Execution, Deployment -> SSH Configurations`路径进入相应界面完成此步骤。 #### 使用 MinGW 或其他环境作为替代方案 如果是在 Windows 平台上工作,则可以考虑采用 MinGW 来搭建 C 语言环境,并将其与 CLion 结合起来使用。不过需要注意的是,更推荐熟悉Visual Studio 的用户继续沿用该集成开发环境,因为其具有更好的调试体验;而像 Dev-C++ 或 Code::Blocks 这样的工具则不太适合复杂项目的长期维护需求[^4]。 #### 设置远程解释器 一旦建立了有效的 SSH 连接之后,下一步就是指定远程系统的 Python 解释器或者其他编程语言对应的执行程序位置。可以通过 `File -> New Project...` 创建新项目时选择 “Remote Host”,然后按照提示输入相关信息来实现这一点。 #### 同步源码库 为了让远端能够获取最新的代码变更记录,应该把 Git 存储库克隆至远程服务器上,并且让 IDE 自动同步更改。这样无论在哪台设备上修改过的内容都可以即时反映出来,从而保障多人合作过程中的数据一致性。 ```bash git clone https://github.com/user/repo.git /path/to/local/project ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值