暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VSCode使用Remote SSH连接远程服务器进行gdb调试

陨天火 2024-11-08
1236

前期准备

由于我们是使用 SSH 连接远程服务器,因此 Windows 需要支持 SSH 。

可以通过安装 Git 来获取 SSH 功能,如何验证?使用 Win + R ,输入 cmd 打开控制窗口,直接输入 ssh ,如下提示,则代表 SSH 已经安装成功;

安装VSCode就不用我多做介绍了吧

安装插件


使用 VSCode 最方便的一点,就是有很多插件可供选择。

本次我们需要使用 Remote - SSH 插件,长这个样子,不要搞错了


同时还需要安装其他几个remote相关插件


安装完插件后,在侧边栏可以看到 “远程资源管理器” 图标。

添加配置文件

目的:配置 VSCode 连接远程服务器的一些基本信息。

1、点击左侧的 “远程资源管理器” 图标,点击右上角的小齿轮(设置)

2、在弹出来的窗口中,选择第一个 config 文件打开,参考下图,填写对应信息


(1)参考上述配置,释义如下

Host <远程主机名称>
    HostName <远程主机IP>
    User <用户名>
    Port <ssh端口,默认22>
    IdentityFile <本机SSH私钥路径>
  • Host :连接的主机名称,可自定义;
  • Hostname :远程主机的 IP 地址;
  • User :用于登录远程主机的用户名;
  • Port :用于登录远程主机的端口,SSH 默认为 22 ;
  • IdentityFile :本地的私钥文件 id_rsa 路径;

(2)如果需要连接多个远程服务器,可参考如上内容,配置多个即可;

Host <远程主机名称1>
    HostName <远程主机1 IP>
    User <用户名1>
    Port <ssh端口,默认22>
    IdentityFile <本机SSH私钥路径>
Host <远程主机名称2>
    HostName <远程主机2 IP>
    User <用户名2>
    Port <ssh端口,默认22>
    IdentityFile <本机SSH私钥路径>

 

连接测试

1、进入 “远程资源管理器” 选项,右键点击主机名;

2、选择一种方式,连接到远程服务器,进行测试;

或者可以点击右侧的小图标进行连接


3、如果连接成功,左下角则会显示当前已连接的主机名。


4、连接后需要输入对应用户秘钥进行登录。

远程服务器插件安装

我们需要同时为远程服务器安装C/C++环境才可以进行gdb调试


上面部分为本地安装的插件,下半部分为远程服务器安装的插件

添加调试配置文件

在debug页面创建新的配置文件并填写如下内容

{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name":"gaussdb",
"type": "cppdbg",
"request": "attach",
"program":"${workspaceRoot}/dest/bin/gaussdb",
"MIMode":"gdb",
"miDebuggerArgs": "-ex 'handle SIGUSR2 nostop noprint' -ex 'set print thread -envents off'",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly0flavor intel",
"ignoreFailures": true
}
]
}
]
}

即可完成调试准备

debug页面会变成如下所示


点击右上角即可进行调试

此种调试方法可以直接方便地查看堆栈以及变量内容,同时也可以直接对远程服务器代码进行修改和保存

 

可能会遇到的问题

C/C++插件更新但是远端服务器无法同步更新:

1、可以将C/C++插件回退为对应版本

2、可以在官网下载最新的离线安装包

C/C++ - Visual Studio Marketplace


安装包下载远程服务器对应的系统,如Linux,通过SSH工具将安装包上传

并通过选项install from VSIX 进行离线安装,以达成两边都为最新版本



最后修改时间:2024-11-08 10:26:36
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论