使用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 | 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的依賴依賴

1
2
3
4
5
6
7
8
9
# 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

本地克利翁配置

添加遠程調試設置

添加GDB Remote Debug

設置gdb remote配置

  • 添加一個GDB遠程調試的配置 GDB Remote Debug
  • 設置遠程訪問參數(target remote args): tcp:xx.xx.xx.xx:1234
  • 設置遠程路徑和本地路徑的映射(Path mappings)
  • 遠程調試連接成功后,像本地調試一樣,可以設置斷點,單步跟蹤等
  • 調試需要本地和遠程的代碼一致

兩個方法設置遠程配置

方法一、 遠程gdbserver的啟動

遠程調試依賴gdbserver的來支持,通過gdbserver的啟動的程序,會先等待遠程調試的連接,連接成功后再啟動進程。

假設代碼的根目錄:/data/pzqu/read_phy_disk_use/,執行以下代碼以后編譯

1
2
3
4
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的還支持動態綁定到已經啟動的進程

1
gdbserver :1234 --attach <PID>

attash成功后

打斷點開始調試

開始調試

  • 點擊小蟲子開始調試

打斷點

  • 我們可以看到代碼停止到了斷點處
  • Variables 是可以自己設置的watch
  • 和正常調試方式一樣啦

用CLion完全的在遠程工作

這是一個非常非常爽的操作,以后就可以完全的用IDE來寫代碼了,雖然使用命令行顯得比較專業,但是使用工具可以有效的提高工作效率,何樂而不為呢?

設置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

  • 添加Application來跑我們的程序
    遠程運行
  • 遠程運行,本地輸出結果
    遠程調試
  • 遠程運行,本地自動調試

總結

  • 配置CLion中的同步信息:同步到哪台機器的哪個目錄。
  • 使用 Deployment 讓本地和遠程可以自動同步和自動下載,手動同步和手動下載代碼
  • 配置GDB remote Debug設置
  • 使用gdbserver來啟動程序進行調試
  • 使用gdbserver attach依附已經啟動的程序進行調試
  • 完全在本地進行遠程代碼調試

其他

  • 這種方式是不是非常的優雅,這樣我們只要不斷的添加工具鏈(Toolchains)就可以在本地應對數不清的遠程環境了。
  • 這種方式應該適用於JetBrain全家桶
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM