如何在vscode中实现远程gdb调试?

2026-03-31 19:451阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1376个文字,预计阅读时间需要6分钟。

如何在vscode中实现远程gdb调试?

在VSCode中如何远程调试gdb?以下文章简要介绍VSCode远程调试gdb的方法,希望对大家有所帮助!

使用VSCode进行远程gdb调试,可以大大提高调试效率。以下是一种方法:

1. 安装VSCode和Remote - SSH插件。

2.在VSCode中打开远程连接。

3.在远程服务器上配置gdb。

4.在VSCode中配置调试配置文件(.vscode/launch.json)。

示例配置文件:

json

{ version: 0.2.0, configurations: [ { name: gdb, type: remote, request: launch, program: /path/to/your/program, remotePath: /path/to/your/program, miDebuggerPath: /path/to/gdb, setupCommands: [ { description: Enable pretty-printing for gdb, text: -enable-pretty-printing, ignoreFailures: true } ] } ]}

保存配置文件后,点击启动调试即可进行远程gdb调试。

最近在同事的安利下,尝试了用VSCode做gdb调试,用完之后,真的香啊!话不多说,直接上代码吧。

vscode中怎么远程gdb调试?下面本篇文章给大家介绍一下vscode远程gdb调试的方法,希望对大家有所帮助!

最近在同事的安利下,尝试了用 vscode 做 gdb 调试,用完之后,“真香”。

话不多说,本文要实现的是:在 windows 端远程调试 linux 服务器和 arm 嵌入式设备上的 c++ 代码,对 gdb 调试的配置及使用进行一个整理。

1、远程连接

首先需要实现远程连接服务器,在插件库中搜索 “remote-ssh”,双击下载安装即可(下图中我已安装好),安装好之后在侧边栏出现远程资源管理器。

点击 + 号,在弹出的命令窗口中输入 ssh 登陆指令,按照提示,输入密码并确认,即可连接成功

2、配置 GDB 环境

在服务端创建一个 c++ 代码,这里以《Linux之C++获取系统用户名》中的代码为例,很简单

如何在vscode中实现远程gdb调试?

#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 了解相关属性。      // 悬停以查看现有属性的描述。     // 欲了解更多信息,请访问: go.microsoft.com/fwlink/?linkid=830387     "version": "0.2.0",     "configurations": [] }

按照下边的内容,对应的修改一下

{     // 使用 IntelliSense 了解相关属性。      // 悬停以查看现有属性的描述。     // 欲了解更多信息,请访问: 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基础教程!

本文共计1376个文字,预计阅读时间需要6分钟。

如何在vscode中实现远程gdb调试?

在VSCode中如何远程调试gdb?以下文章简要介绍VSCode远程调试gdb的方法,希望对大家有所帮助!

使用VSCode进行远程gdb调试,可以大大提高调试效率。以下是一种方法:

1. 安装VSCode和Remote - SSH插件。

2.在VSCode中打开远程连接。

3.在远程服务器上配置gdb。

4.在VSCode中配置调试配置文件(.vscode/launch.json)。

示例配置文件:

json

{ version: 0.2.0, configurations: [ { name: gdb, type: remote, request: launch, program: /path/to/your/program, remotePath: /path/to/your/program, miDebuggerPath: /path/to/gdb, setupCommands: [ { description: Enable pretty-printing for gdb, text: -enable-pretty-printing, ignoreFailures: true } ] } ]}

保存配置文件后,点击启动调试即可进行远程gdb调试。

最近在同事的安利下,尝试了用VSCode做gdb调试,用完之后,真的香啊!话不多说,直接上代码吧。

vscode中怎么远程gdb调试?下面本篇文章给大家介绍一下vscode远程gdb调试的方法,希望对大家有所帮助!

最近在同事的安利下,尝试了用 vscode 做 gdb 调试,用完之后,“真香”。

话不多说,本文要实现的是:在 windows 端远程调试 linux 服务器和 arm 嵌入式设备上的 c++ 代码,对 gdb 调试的配置及使用进行一个整理。

1、远程连接

首先需要实现远程连接服务器,在插件库中搜索 “remote-ssh”,双击下载安装即可(下图中我已安装好),安装好之后在侧边栏出现远程资源管理器。

点击 + 号,在弹出的命令窗口中输入 ssh 登陆指令,按照提示,输入密码并确认,即可连接成功

2、配置 GDB 环境

在服务端创建一个 c++ 代码,这里以《Linux之C++获取系统用户名》中的代码为例,很简单

如何在vscode中实现远程gdb调试?

#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 了解相关属性。      // 悬停以查看现有属性的描述。     // 欲了解更多信息,请访问: go.microsoft.com/fwlink/?linkid=830387     "version": "0.2.0",     "configurations": [] }

按照下边的内容,对应的修改一下

{     // 使用 IntelliSense 了解相关属性。      // 悬停以查看现有属性的描述。     // 欲了解更多信息,请访问: 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基础教程!