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

來源:互聯網
上載者:User

標籤:

在 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 的設定頁,設定建置指令:

http://roucheng.cnblogs.com/  

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

  這裡我的設定值是:

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 來進行偵錯了!

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.