clion 是 jetbrains ide 全家桶產品之一,可以用來開發 c/c++ 專案,而 gdb 則可以用來對 c/c++ 程式進行除錯。
作為一款偵錯程式,gdb 為程式開發人員提供了強大的除錯功能,但卻需要使用命令來執行除錯操作,操作起來不是很方便。(有關 gdb 的使用,可以參考文章《gdb 除錯》。)為此,clion 為程式開發人員提供了圖形化的除錯介面以方便除錯。另外,clion 還提供了遠端除錯的功能。因為在實際專案中,我們常會碰到在本地開發環境編寫**,程式卻在遠端機器執行的情況。遠端除錯功能對我們來說是十分必要的。
本文講述如何使用 clion 來實現遠端除錯。
假設本地開發環境是 windows 作業系統,程式遠端執行環境是 centos 作業系統。為滿足遠端除錯,需要在 centos 上安裝必要的軟體,安裝的軟體包括:
安裝命令如下:
yum install cmake -y
yum install gcc-c++ -y
yum install gdb -y
yum install gdb-gdbserver -y
cmake 用於管理編譯過程,生成 makefile 檔案;gcc-c++ 是編譯器;gdb 是個除錯工具,程式除錯功能實際上就是由 gdb 提供的;gdbserver 用於監聽某個 tcp 埠,允許遠端主機連線,以實現遠端除錯功能。
至於本地開發環境,windows 作業系統上安裝好最新版本的 clion ,以筆者為例,當前 clion 最新版本為 2018.3。
使用 clion 建立乙個 c++ 專案 helloworld。然後,開啟選單 tools - deployment - configuration,配置遠端主機以及本地目錄與遠端目錄的對映關係:
右鍵專案資料夾,選擇 deployment - upload to 10.88.115.114,便將專案源**上傳至 10.88.115.114 主機上。
上述我們配置了遠端主機與本地主機目錄對映,因此執行上傳操作後,可以看到源**已被上傳至上述配置的目錄中。
clion 為我們生成了預設的源**main.cpp
,修改main.cpp
,增加乙個add
函式,方便展示除錯功能:
#include
using
namespace std;
intadd
(int a,
int b)
intmain()
修改main.cpp
源**後,需要重新將**上傳至遠端機器。
clion生成的cmakelists.txt
如下,使用 c++98 標準,指定生成的可執行檔名為helloworld
:
project(helloworld)
set(cmake_cxx_standard 98)
add_executable(helloworld main.cpp)
由於上面我們已將源**上傳至 10.88.115.114 主機,進入 10.88.115.114 目錄 /home/lihao/code/cpp/hello,然後執行以下操作:
$ cd /home/lihao/code/cpp/hello
$ mkdir build
$ cd build
$ cmake .. -dcmake_build_type=debug
$ make
執行cmake
命令會生成 makefile 檔案,指定-dcmake_build_type=debug
是為了支援 gdb 除錯。
執行make
命令會在build
目錄下編譯生成可執行檔案:helloworld。
經過上述的操作步驟,接下來我們就可以實施遠端除錯了。
在遠端主機繼續執行命令:
gdbserver :1234 /home/lihao/code/cpp/hello/build/helloworld
即指定 gdbserver 監聽埠 1234,輸出:
process /home/lihao/code/cpp/hello/build/helloworld created; pid = 12496返回本地 clion,配置遠端除錯資訊,增加乙個 gdb remote debug 配置:listening on port 1234
然後輸入以下配置資訊:
設定斷點,按下除錯按鈕,可以看到程式已被執行起來,且中斷在斷點處,可以看到變數值:
需要指出的是,helloworld 程式的執行是在遠端主機,並不是本地主機,clion 通過向 gdbserver 傳送除錯命令從而達到控制遠端主機上的 gdb 的目的。
Mac下CLion 實現遠端除錯
配置可以參考 官方文件 full remote mode 方法及使用可以參考 clion 實現遠端除錯 文中的配置有點問題,需要修改下 路徑應該是 settings preferences build,execution,deployment toolchains 注意 這裡只是將本地 同步到遠端伺...
CLion遠端同步和遠端除錯C
1.選擇clion的file settings,找到如下圖所示的deployment 2.點選加號新建連線,選擇sftp協議,然後點選ssh configuration右邊的.然後填寫上伺服器的ip位址以及使用者名稱和密碼。填寫完之後如果在點選test connection的時候提示如下錯誤,the...
在Clion中除錯ROS程式
在ros wiki 中有幾種ide的配置方法,但沒有clion的相關介紹。下面介紹一下clion的相關配置。ros clion配置 在終端中開啟jetbrains clion desktop vimjetbrains clion desktop 將檔案中exec home clion 2016.2 ...