首頁>技術>

在Linux上通常使用gdb命令列除錯,但該方式除錯不太直觀,且命令列長時間不用,容易忘記,不如GUI直觀和容易上手,下面介紹基於GUI的方式除錯Linux。

一.Linux除錯GUI方案簡介

1) Visual studio 遠端除錯Linux

在VS2015版本以後Visual studio就支援Linux的編譯和除錯。使用熟悉的windows介面開發和除錯Linux,極大地提高了開發效率,可以廣泛應用的Linux伺服器開發和嵌入式Linux開發。遺憾的是該方式需要基於VS工程來除錯,舊的專案是基於Makefile的工程,VS不能除錯Makefile工程,業界將Makefile工程轉VS工程,然後用VS來除錯,詳見https://github.com/robotdad/vclinux。

2) 基於eclipse 本地除錯Linux

因為eclipse是跨平臺的,安裝一個帶GUI的linux系統,就可以像VS一樣開發和除錯Linux

3) 基於QtCreator 本地除錯Linux

因為QtCreator是跨平臺的,安裝一個帶GUI的linux系統,就可以像VS一樣開發和除錯

4) 基於eclipse 遠端除錯Linux

gdb+gdbserver方式,遠端有一個gdbserver,本地機器透過網路發指令給gdbserver完成除錯

5) 基於QtCreator遠端除錯Linux

gdb+gdbserver方式,遠端有一個gdbserver,本地機器透過網路發指令給gdbserver完成除錯

6) 基於vscode遠端除錯Linux

該方法支援除錯Linux程式,不要編譯器參與,可以完美的將Makefile工程簡單的接管起來除錯,可以是基於ssh+vscode方式或者gdb+vscode+gdbserver方式。本文重點介紹該ssh+vscode方法的使用。

二.基於vscode ssh遠端除錯Linux實戰

軟體安裝

1) 伺服器安裝gdb

注意我們是ssh+vscode方式,沒有用到gdbserver,故不需要安裝gdbserver。

gdb+gdbserver方式,在宿主機還需要安裝一個交叉編譯的gdb,目標機起一個gdbserver去接收和解析指令,詳見https://blog.csdn.net/zhaoxd200808501/article/details/77838933。

2)VScode 輸入ctrl+shift+x

在擴充套件專欄安裝Remote Development和C/C++,安裝後完畢後產生一個SSH工具和debug工具。

建立ssh連線

這裡以簡單起見,使用密碼賬號登入。當然也可以使用公鑰登入。詳解官方文件

1) 選擇ssh target

3) 選擇連線伺服器,右鍵---connect host in current window,輸入相應密碼即可連線SSH伺服器

配置debug 引數,並進行除錯

即選擇遠端伺服器的debug檔案,指定目錄和原始檔。如C/C++檔案

2) 選擇遠端配置檔案目錄,並建立預設的launch.json檔案

3) 修改配置檔案

1.可執行檔案路徑

"program": "${workspaceFolder}/hello",

2.在main入口斷點住

"stopAtEntry": true,

4) 選擇gdb launch 偵錯程式,就可以啟動遠端的hello可執行檔案,並進行單步,斷點等各種除錯

5) vscode同樣支援attach到某個程序進行線上除錯

1.增加attach 配置

偵錯程式選擇--->add configure---選擇c/c++ gdb attach 即可

2.修改配置檔案中的可執行檔案路徑

"program": " ${workspaceFolder}/hello",

3.在伺服器上啟動一個hello可執行程式

4.選擇gdb attach 偵錯程式,選擇遠端程序為hello的程序,就可以對該程序進行各種手段的除錯

18
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 看完這5本書單,幫助你上手swift專案