歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 使用VS GDB擴充套件在VS上遠端偵錯Linux上的C/C++程序

使用VS GDB擴充套件在VS上遠端偵錯Linux上的C/C++程序

日期:2017/3/1 9:18:38   编辑:Linux編程

在 Linux 上開發 C/C++ 程序,或許你會直接(本機或遠端)登入 Linux,打開編輯器寫完代碼後,就用 gcc/g++ 來編譯,遇到要除錯(debug)的時候,則會選擇使用 gdb 來進行除錯。現在,如果你剛好也很喜歡 Visual Studio,你可以不必改變習慣,用 Visual Studio 寫程式、然後遠端送到 Linux 上編譯、甚至還能接上 gdb 來除錯。這個對於開發像是嵌入式系統、或是 IoT 裝置的程序等等就可以多多利用 Visual Studio 強大的 IDE 能力。

圖: 應該有不少在 Linux 上寫程式的開發人員是這麼工作的吧?

如何做?

首先,你必須使用 Visual Studio 2015,你可以使用免費版[1]的 Visual Studio 2015 Community 或是其它更高等級的版本,記得在安裝時要勾選 Visual C++ 以及 C++ 跨平台行動開發這兩個元件:

圖: 安裝 Visual C++

然後只要再安裝 Visual Studio GDB Debugger 這個擴充套件,就能夠在 Visual Studio 的 Visual C++ > 跨平台的項目類型中選擇 Makefile Project (GDB) 的項目范本。

圖: 在 Visual Studio 中建立 Makefile Project (GDB)

建立項目後,啟始畫面就會有簡單的說明如何連接遠端的 GDB 來進行除錯,照著做應該就沒有什麼大問題了。會用到與 SSH 相關的工具可以到 PuTTY 的網站上下載相關的工具。

圖: 使用 VS GDB 擴充套件的教學

首先在項目上按右鍵選擇內容,設定偵錯的環境,像是遠端主機的位址、然後認證用的 pub/private key,還有連接的方式(ssh 或 plink)等等,這裡要注意的是連接服務器是使用 RSA 的公私鑰的方式進行認證,所以你必須先產生一組 RSA 金鑰,然後在 Linux 主機上放好公鑰,然後這裡設定是用私鑰去驗證(圖中的 .ppk 檔桉)。

圖: 設定遠端主機連線的資訊

然後就是設定在編譯程序時要如何把程式上傳到目標的 Linux 機器上,然後用機器上的 gcc/g++ 來進行編譯,切換到 NMake 的設定頁,設定建置指令:

圖: 設定如何將程式丟上遠端主機並且進行編譯

這裡我的設定值是:

d:\tools\pscp.exe -i $(PrivateKey) "D:\Temp\Project1\Project1\main.cpp" $(RemoteUserName)@$(RemoteHostName):$(RemoteWorkingDirectory)/main.cpp

$(SecureShellExecutable) $(RemoteUserName)@$(RemoteHostName) -i $(PrivateKey) "cd $(RemoteWorkingDirectory);g++ -g main.cpp -o $(RemoteExecutable)"

這裡我是用 pscp 把檔案傳上 Linux 主機上後,再用 g++ 來進行編譯,其它的變數都是前面設定的值,你可以根據你的工具以及檔檔案所在位置做修改。

接下來你就可以開始撰寫程序了,然後就像在 Visual Studio 裡寫其它程序一樣設定中斷點,但是執行時選擇 Remote GDB 就可以開始進行遠端偵錯了。

圖: 啟動遠端主機的 gdb 來除錯,但結合 Visual Studio 的偵錯介面

看起來就好像都是在 Visual Studio 中的除錯畫面,但是這個代碼確實已經送上 Linux 主機進行編譯,並且使用 gdb 來進行偵錯了!

使用Visual Studio Code開發TypeScript http://www.linuxidc.com/Linux/2015-07/119456.htm

Visual Studio Code 簡單試用體驗 http://www.linuxidc.com/Linux/2015-05/116887.htm

Visual Studio Code試用體驗 http://www.linuxidc.com/Linux/2015-07/120378.htm

Visual Studio 2010 & Help Library Manager 安裝說明 http://www.linuxidc.com/Linux/2012-11/74814.htm

OpenCV 2.3.x/2.4.x在Visual Studio 2005/2008和Visual Studio 2010配置方法詳解 http://www.linuxidc.com/Linux/2012-08/68302.htm

使用OpenCV-2.4.0.exe文件編譯x86或x64平台Visual Studio 2005/2008/2010目標文件 http://www.linuxidc.com/Linux/2012-08/68305.htm

Visual Studio LightSwitch增加對HTML5和JavaScript的支持 http://www.linuxidc.com/Linux/2012-06/63397.htm

Visual Studio 11:使用 C++ 開發一個最簡單的 Metro 應用 http://www.linuxidc.com/Linux/2012-06/62657.htm

Visual Studio 的詳細介紹:請點這裡
Visual Studio 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved