前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何优雅的远程自动同步和远程调试c++?

如何优雅的远程自动同步和远程调试c++?

作者头像
腾讯云TStack
发布于 2019-10-25 02:40:18
发布于 2019-10-25 02:40:18
4.2K00
代码可运行
举报
运行总次数:0
代码可运行

/ 机智的小熊 /

一个不愿意透露姓名的工程师,热爱读书,写文章,热爱交流,期待认识更多的大佬。

摘 要

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

一、简 介

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

二、环境准备

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

三、自动同步

1)打开CLion的设置,进入到 Preferences | Build, Execution, Deployment | Deployment

2)点加号,添加一个远程配置

3)设置为SFTP协议,设置远程ip、port、pass然后点击Test Connection,确认是否连接成功

1)切换到Mappings

2)设置本地的代码根目录Local path

3)设置远程的代码根目录 Deployment path

1)上传一个文件

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

上传成功

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

1)在Tool - Deployment - Automatic Upload(always) 设置为自动同步

2)自动同步的话可以在每次在本地改动代码的时候自己同步了

3)Sync with Deployed to 就是自动下载远程代码到本地

手动上传整个项目

上传成功,上传了100个文件

查看远程目录,确实成功了;好了,现在只要在本地有任何的改动都会自动同步到远程了。

四、远程调试

1、CentOS的依赖依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cmake
yum install cmake -y

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

#gdbserver
yum install gdb-gdbserver -y

2、添加GDB Remote Debug

本地克利翁配置

1)添加一个GDB远程调试的配置 GDB Remote Debug

2)设置远程访问参数(target remote args):tcp:xx.xx.xx.xx:1234

3)设置远程路径和本地路径的映射(Path mappings)

4)远程调试连接成功后,像本地调试一样,可以设置断点,单步跟踪等

5)调试需要本地和远程的代码一致

3、两个方法设置远程配置

方法1—— 远程gdbserver的启动

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

假设代码的根目录:

/data/pzqu/read_phy_disk_use/,执行以下代码以后编译

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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来请获取调试

方法2——远程gdbserver的动态连接

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gdbserver :1234 --attach <PID>
打断点开始调试

点击小虫子开始调试

1)我们可以看到代码停止到了断点处

2)Variables 是可以自己设置的watch

3)和正常调试方式一样啦

五、用CLion完全的在远程工作

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

1)进入 Preferences | Build, Execution, Deployment | Toolchains

2)设置远程连接信息,CLion会自动监测CMake gcc g++ gdb的信息

1)进入Preferences | Build, Execution, Deployment | CMake

2)Toolchain 选择我们刚刚设置的

3)上面的Automatically reload CMake project on editing 的设置勾上的时候,只要代码有修改就会自动编译

1)现在已经配置了远程Toolchains工具链并配置了相应的CMake配置文件

2)上图是自动编译和上传到的目录/tmp/tmp.pIdETgMIBR,然后我们只要设置为自动同步目录就成了,如下图

现在已经设置成了自动同步目录,只需在运行/调试配置切换器中选择正确的CMake配置文件,即可以完全远程的方式构建,运行和调试应用程序和测试。

添加Application来跑我们的程序

远程运行,本地输出结果

远程运行,本地自动调试

六、总结

1、配置CLion中的同步信息:同步到哪台机器的哪个目录。

2、使用 Deployment 让本地和远程可以自动同步和自动下载,手动同步和手动下载代码

3、配置GDB remote Debug设置

4、使用gdbserver来启动程序进行调试

5、使用gdbserver attach依附已经启动的程序进行调试

6、完全在本地进行远程代码调试

七、其他

1、这种方式是不是非常的优雅,这样我们只要不断的添加工具链(Toolchains)就可以在本地应对数不清的远程环境了。

2、这种方式应该适用于JetBrain全家桶。

猜你还想看这些内容

●Harbor企业级实践丨20倍性能提升so easy!

●Harbor企业级实践丨零侵入改造!

Kustomize上篇丨Helm 和 Kustomize:不只是含谷量的区别

Kustomize下篇丨Kustomize 中的增删改查

· END ·

记得文末点个好看鸭~


点就完事儿了!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云TStack 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用Clion优雅的完全远程自动同步和远程调试c++
摘要:在linux上用vim写C++的时候,通常用gdb进行调试,不能随心所欲的看代码和跳转代码以及加watch(也有可能是因为我还没有get正确的使用方法)。为此我发现Clion可以做到自动同步本场代码或自己下载远程代码同步到本地,以及调试在远程机器上运行的代码,为此记录下来。
机智的程序员小熊
2019/03/23
61K1
使用Clion优雅的完全远程自动同步和远程调试c++
PHP XDebug 远程调试
然后重点来了,一定不要忘记开放上面配置的xdebug.remote_port端口号,开放此端口号、开放此端口号、开放此端口号。
许杨淼淼
2019/12/30
3.6K0
PHP XDebug 远程调试
技术分享 | 新手如何调试 OceanBase
爱可生 DBLE 研发成员,负责分布式数据库中间件的新功能开发,回答社区/客户/内部提出的一般性问题。
爱可生开源社区
2022/12/28
1.4K0
技术分享 | 新手如何调试 OceanBase
Pycharm远程连接服务器(windows下远程修改服务器代码)[通俗易懂]
http://blog.csdn.net/duankaifei/article/details/41898641
全栈程序员站长
2022/09/27
10.1K0
Pycharm远程连接服务器(windows下远程修改服务器代码)[通俗易懂]
envoy vscode调试环境搭建
经过一周的反复折腾,终于能顺利 debug envoy 源码,中途踩了无数坑,在此记录一下。
kinnylee
2021/12/06
2.9K0
IDA + GDBServer实现iPhone程序远程调试
在早期的IDA中包含了一个iphoneserver的程序,这个程序就是配合IDA实现远程调试的。但是在最新版的IDA中这个东西已经不复存在了,因而下载的破解版的IDA中没有那个文件并不是被删除掉了,而是本来就没有,*^_^*。所以一直以来调试iPhone上的二进制程序只能悲催的使用ssh+gdb进行调试,虽然调试器的功能还算可以,但是每次调试都需要设置显示,只能使用命令进行控制,因而用起来还是不是十分爽。
obaby
2023/02/24
2K0
大厂原来都这么使用IDEA远程调试的!
远程调试是一项重要的技术,特别是对于使用IDEA开发的开发者来说。在本篇技术博客中,我们将探讨如何使用IDEA进行远程调试。
JavaEdge
2023/08/09
4.5K0
大厂原来都这么使用IDEA远程调试的!
Dapr 远程调试之 Nocalhost
虽然Visual studio 、Visual studio code 都支持debug甚至远程debug ,Dapr 搭配Bridge to Kubernetes 支持在计算机上调试 Dapr 应用程序,同时仍然让它们与 Kubernetes 集群上运行的服务和应用程序进行交互。 但是在调试过程中,难免修改配置、添加调试信息、修改代码并验证,这样就需要提交代码,重新编译、部署以验证功能是否符合预期,这样就拉长时间线,拉低了开发效率。一个系统可能还好点,如何项目A调用B、B又调用C,想要调试C,本地调试的话就需要配置3套环境,分别运行3个项目,流程线可想而知。
张善友
2022/04/28
1K0
Dapr 远程调试之 Nocalhost
简单几步!Windows下Clion结合docker调试openjdk8源码
原理是通过Docker编译openjdk,然后结合clion通过gdbserver远程调试
DH镔
2021/01/20
1.4K0
简单几步!Windows下Clion结合docker调试openjdk8源码
使用Eclipse构建树莓派远程调试环境
在Ubuntu主机端使用gdb-multiarch实现远程调试之后,接下来使用说明在Eclipse中实现远程调试的方法。
面向对象思考
2020/03/25
1K0
使用Eclipse构建树莓派远程调试环境
ARM平台如何玩转GDB远程调试?
GDB工具是GNU项目调试器,基于命令行使用。和其他的调试器一样,可使用GDB工具单步运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是UNIX/LINUX操作系统下强大的程序调试工具。GDB支持多种语言,包括Ada、汇编、C/C++、D、Fortran、GO、Objective-C、OpenCL、Modula-2、Pascal和Rust。
创龙科技Tronlong
2021/10/09
1.7K0
ARM平台如何玩转GDB远程调试?
pycharm设置远程调试_调试助听器需要什么配置的电脑
默认情况下我们在本地开发Python程序时,使用的是本地的Python解释器,如果你安装了virtualenv或者pyenv的话,还可以选择这些虚拟环境。而使用Pycharm的专业版,则还可以选择使用远程Linux机器上的解释器。下面就来介绍下使用远程解释器的步骤。
全栈程序员站长
2022/09/27
4500
pycharm设置远程调试_调试助听器需要什么配置的电脑
深入探索GDB:Linux下强大的调试神器
GDB,全称GNU Debugger,是一款开源、跨平台的源码级调试工具,尤其在Linux生态系统中占据着举足轻重的地位。GDB支持包括C、C++、Fortran、Ada、Objective-C、Go、D等多种编程语言,能够与GCC、Clang、LLVM等一系列主流编译器无缝集成。无论是针对桌面应用程序、服务器端服务,还是嵌入式系统,GDB都能以其强大的功能和灵活的交互方式,为开发者提供无与伦比的调试体验。
P_M_P
2024/04/25
1.2K0
深入探索GDB:Linux下强大的调试神器
Go远程调试方案
本文将对远程调试这个日常开发问题,进行一些方法上的梳理,涉及语言包括golang、python。
liliane
2024/08/30
4070
VS code 插件配置手册
C/C++ Tools插件---C/C++支持安装库文件的配置GDB本地调试配置GDB远程调试配置Remote VSCode插件---远程编辑文件安装环境配置在本地端的配置在远程端的配置工作流Ftp Sync插件--—远程代码的同步安装环境配置工作流
OpenCV学堂
2019/06/19
3.6K0
VS code 插件配置手册
教你使用PyCharm实现远程调试
最近手头被交接了几个测试脚本,都需要进行二次开发或者持续维护,这几个测试脚本分别被部署在不同的服务器中,使用的Python环境也各不相同,因此如果在本地进行二次开发再部署到服务器中,会很麻烦,所以在本地PyCharm上搭建一个远程调试功能,对脚本进行远程调试和运行,就会特别方便啦。
用户5521279
2019/06/02
1.4K0
远程调试软件对比与使用推荐
远程调试是现代软件开发中不可或缺的一部分,尤其是在处理分布式系统、云端服务或远程服务器上的问题时。以下是对几种常见远程调试工具的详细对比和推荐使用场景。
码事漫谈
2024/12/20
3860
远程调试软件对比与使用推荐
国密SSL通信的调试技巧
这篇文章来聊一聊国密SSL通信的几个调试技巧。网络通信开发需要开发者具有细致和耐心,对照协议,逐个步骤分析数据,整个过程有些枯燥。特别是网络数据包,差一个字节都可能导致解析出错,只能逐个字节比对。这个时候,一些调试经验和技巧就比较重要了。
云水木石
2020/05/15
2.9K0
国密SSL通信的调试技巧
IDEA怎么远程调试应用?
一直在纠结有没有必要写这一章的内容,毕竟网上有挺多现成的,但是为了系列文章的完整性,还是写一写。本文将结合着远程调试weblogic来讲解如何使用IDEA调试远程应用,如果你还不清楚,建议收藏,方便查阅。
tnt阿信
2020/08/05
2K0
IDEA怎么远程调试应用?
VS2015 远程调试:Remote Debugger
  使用VS远程调试器Remote Debugger,我们可以调试部署在不同机器上的应用程序,如桌面应用程序和Asp.Net应用程序。
战神伽罗
2019/07/24
2.9K0
VS2015 远程调试:Remote Debugger
相关推荐
使用Clion优雅的完全远程自动同步和远程调试c++
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验