首頁 > 開發工具 > VSCode > 主體

vscode中怎麼遠端gdb調試?方法詳解

青灯夜游
發布: 2023-04-11 19:14:43
轉載
3107 人瀏覽過

vscode中怎麼遠端gdb調試?以下這篇文章跟大家介紹一下vscode遠端gdb調試的方法,希望對大家有幫助!

vscode中怎麼遠端gdb調試?方法詳解

最近在同事的安麗下,嘗試了用 vscode 做 gdb 調試,用完之後,「真香」。

話不多說,本文要實現的是:在 windows 端遠端調試 linux 伺服器和 arm 嵌入式設備上的 c 程式碼,對 gdb 調試的配置及使用進行一個整理。

1、遠端連線

首先需要實作遠端連線伺服器,在外掛程式庫中搜尋“remote-ssh”,雙擊下載安裝即可(下圖我已安裝好),安裝好之後在側邊欄出現遠端資源管理器。 【推薦學習:vscode教學程式設計教學

#點選+ 號,在彈出的指令視窗中輸入ssh 登陸指令,依照提示,輸入密碼並確認,即可連接成功

#2、設定GDB 環境

##在服務端創建一個c 程式碼,這裡以《

Linux之C 取得系統使用者名稱》中的程式碼為例,很簡單

#include <unistd.h>
#include <pwd.h>
#include <iostream>
 
int main()
{
	struct passwd* pwd;
	uid_t userid;
	userid = getuid();
	pwd = getpwuid(userid);
 
	std::cout << "pw_name:" << pwd->pw_name << std::endl;
	std::cout << "pw_passwd:" << pwd->pw_passwd << std::endl;
	std::cout << "pw_uid:" << pwd->pw_uid << std::endl;
	std::cout << "pw_gid:" << pwd->pw_gid << std::endl;
	std::cout << "pw_gecos:" << pwd->pw_gecos << std::endl;
	std::cout << "pw_dir:" << pwd->pw_dir << std::endl;
	std::cout << "pw_shell:" << pwd->pw_shell << std::endl;
 
    return 0;
}
登入後複製
編譯方法如下,注意一定要加上-g 指令,否則無法gdb 偵錯

g++ -g test.cpp -o test
登入後複製
然後點擊檔案-開啟資料夾,找到已建立的程式碼路徑,確定後,在左側的資源管理器可以看到程式碼檔案。

第一次執行需要安裝c 的擴展,在擴充頁面中,安裝C/C  

 同時搜尋GDB Debug 並安裝

 安裝好之後,點選「執行與偵錯」按鈕,「建立launch.json」 文件,

 選擇C (GDB /LLDB)項,自動產生launch.json 文件,內容如下

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": []
}
登入後複製
依照下邊的內容,對應的修改一下

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动", //配置名称,显示在配置下拉菜单中
            "type": "cppdbg", //配置类型
            "request": "launch", //请求配置类型,可以是启动或者是附加
            "program": "${workspaceFolder}/test", //程序可执行文件的完整路径,${workspaceFolder}表示远程连接的初始路径
            "args": [], //传递给程序的命令行参数
            "stopAtEntry": false,//可选参数,如果为true,调试程序应该在入口(main)处停止
            "cwd": "${workspaceFolder}", //目标的工作目录
            "environment": [], //表示要预设的环境变量
            "externalConsole": false,//如果为true,则为调试对象启动控制台
            "MIMode": "gdb",//要连接到的控制台启动程序
            "setupCommands": [ //为了安装基础调试程序而执行的一个或多个GDB/LLDB命令
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
登入後複製
至此環境配置完畢

# 3.GDB 調試方法

在原始程式碼中直接點擊行數左側,即可增加斷點,設定好斷點之後,點擊「運行與偵錯」--(gdb)啟動,如下

即可進入偵錯頁面

#可以在變數區直接看到變數值,完成偵錯目的。

常用的偵錯按鍵如下

F5    開始除錯

F10   單步跳過

##F11   單步驟偵錯

shift F11   單步跳出

ctrl shift F5  重新啟動調試

shift F5  停止調試

4、問題總結

#如果之前連接過某台設備,後續更換設備是同一個IP,或者說設備重裝過系統,但IP沒變,重連的時候會報錯,原因是主機將伺服器IP 列為known_host

 我們找到修改刪除該IP 然後重連即可

更多關於VSCode的相關知識,請造訪:

vscode基礎教學

以上是vscode中怎麼遠端gdb調試?方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!