自动同步

- 打开CLion的设置,进入到 Preferences | Build, Execution, Deployment | Deployment
- 点加号,添加一个远程配置
- 设置为SFTP协议,设置远程ip、port、pass然后点击Test Connection,确认是否连接成功

- 切换到Mappings
- 设置本地的代码根目录Local path
- 设置远程的代码根目录 Deployment path

- 上传一个文件
- Upload是上传,Download是下载,本地与远程所映射的目录我们在上面设置过了
- 上传成功

设置自己同步
gcc & gdb
yum install gcc-c++ -y yum install gdb -y
gdbserver
yum install gdb-gdbserver -y
sudo apt-get install gdbserver
<a name="FhGJs"></a>## 添加GDB Remote Debug本地clion配置<br /><br /><br /><br />设置gdb remote配置- 添加一个GDB远程调试的配置 GDB Remote Debug- 设置远程访问参数(target remote args): tcp:xx.xx.xx.xx:1234- 设置远程路径和本地路径的映射(Path mappings)- 远程调试连接成功后,像本地调试一样,可以设置断点,单步跟踪等- 调试需要本地和远程的代码一致<a name="KnLd8"></a>#### 两个方法设置远程配置**方法一、** 远程gdbserver的启动<br />远程调试依赖gdbserver的来支持,通过gdbserver的启动的程序,会先等待远程调试的连接,连接成功后再启动进程。<br />假设代码的根目录:/data/pzqu/read_phy_disk_use/,执行以下代码以后编译```javacd /data/pzqu/read_phy_disk_use/buildcmake .. -DCMAKE_BUILD_TYPE=Debugmakegdbserver :1234 ./read_phy_disk_use
注意:cmake的指定需要-DCMAKE_BUILD_TYPE=Debug来请获取调试
CMakeList文件(注意设置为debug模式):
cmake_minimum_required(VERSION 3.10)
project(hello_world)
set(CMAKE_CXX_STANDARD 11)
SET(CMAKE_BUILD_TYPE "Debug")
add_executable(hello_world main.cpp)
需要说明,CLion必须使用CMakeList来编译代码,无法用Makefile。CMakeList要比Makefile好用很多。

方法二 远程gdbserver的动态连接
gdbserver的还支持动态绑定到已经启动的进程
gdbserver :1234 --attach <PID>

attash成功后
现在可以打断点调试了
# 命令格式为:gdbserver IP:PORT 程序名(包含其目录)
gdbserver 10.10.108.39:8888 /mnt/leilei.zhou/slu/master/work_flow/bin/slu_test
# 开启gdbserver的命令格式为:gdbserver IP:PORT --attach PID
gdbserver 10.10.14.45:8888 --attach 2382

然后就可以用本地的Clion debug服务器端的代码了。
在本地端Clion中打个断点,Run -> Debug ‘xxx’
服务端会出现“Remote debugging from host xx.xx.xx.xx”
xx.xx.xx.xx是Clion端的IP地址。如下图所示,这样代表跑起来了。
用CLion完全的在远程工作
这是一个非常非常爽的操作,以后就可以完全的用IDE来写代码了,虽然使用命令行显得比较专业,但是使用工具可以有效的提高工作效率,何乐而不为呢?
要让当前项目使用我们配置的 Toolchains,需通过如下操作将设置的Remote Host 放在default之上,后续的重新打开当前项目才会触发Remote Host 的配置。
设置Toolchains工具链
- 进入 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来跑我们的程序
远程运行,本地输出结果 
