gdbserver配置、远程调试以及ssh配置

引言

GDB调试主要有两种方法:

(1)直接在目标板上通过gdb调试程序

(2)在目标板上通过gdbserver运行程序,在宿主机上通过gdb调试程序

本篇文章主要来说明一下gdbserver远程调试的方法,主要以VScode举例说明:

步骤

一、VScode配置

1)安装VScode软件,可直接去官网下载。

2)安装ssh插件

3)登录远程服务器:ctrl+shift+p调出用于执行命令的输入框,输入remote-ssh:add new ssh host,用于添加新的SSH主机。

4)按照:ssh 用户名@ubuntu 服务器IP 的格式进行添加ssh主机,输入示例:ssh root@192.0.10.10

 5)选择第一个会将远程服务器用户名、IP存在config文件中

6)ctrl+shift+p调出用于执行命令的输入框,输入remote-ssh:connect to host,用于连接到SSH主机。

 选择平台的远程主机:

 输入密码后,选择打开的文件夹即可;

二、远程调试

1)创建launch.json文件,此文件就是用于调试的配置文件。

2)选择调试器后,会自动生成launch.josn文件,在该文件中需要进行修改配置,实例配置如下:

{
    // 使用 IntelliSense 了解相关属性。
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

    "version": "0.2.0",
    "configurations": [
        {
            "name": "sdk-debug",
            "type": "cppdbg",
            "request": "launch",
            "miDebuggerPath": "aarch64-linux-gnu-gcc-gdb",
            "miDebuggerServerAddress": "192.0.10.10:1789",
            "program": "${workspaceFolder}/.a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "logging": {
                "engineLogging": false
            },
            "MIMode": "gdb",
        }
    ]
}

详见:Debugging in Visual Studio Code

launch.json文件需要修改的地方就是program字段、miDebuggerServerAddress字段,${workspaceFolder}是指刚才打开的远程文件夹,只需要在后面指定待调试程序的名称即可。stopAtEntry字段,默认是false,这是指开始调试的时候是否在main函数断点,所以改为true。其他使用默认的就行。

name:配置名称,将会在调试配置下拉列表中显示。

type:调试器类型。

request:调试方式。

miDebuggerPath:调试器位置。

miDebuggerServerAddress:用于远程调试连接的调试器服务器(设备)

program:要调试的程序(完整路径,支持相对路径)。

args:传递给上面程序的参数,没有参数留空即可。

stopAtEntry:是否停在程序入口点(停在main函数开始)。

cwd:调试程序时的工作目录

environment:要添加的环境变量。

externalConsole:调试时是否显示控制台窗口。

MIMode:VSCode要使用的调试工具。

3)远程设备开启gdbserver

首先在设备端开启:./gdbserver :1789 libsdk(这里的1789要和miDebuggerServerAddress里的1789保持一致)注:gdbserver使用时需要拷贝到设备上。

其次在VScode上:

 三、SSH免密登录

1)配置环境变量

右击此电脑->属性->高级系统设置->环境变量->新建->确定

选择用户变量而非系统变量下方的 新建 新建以下环境变量:

输入变量名为:SSH_PATH

变量值:C:\Windows\System32\OpenSSH\

再选择用户变量中的 PATH 编辑,添加以下两个对象:

%SYSTEMROOT%\System32\OpenSSH\

C:\Windows\System32\OpenSSH

2)判断是否安装ssh成功

Win+R cmd

ssh -V 查看版本号,查看到即安装成功。

3)在本地生成密钥对

ssh-keygen   一路回车

4)服务器

在服务器找到home\用户名\.ssh文件夹(没有的话使用命令mkdir .ssh新建);

若有.ssh文件夹,查看其中是否包含名为authorized_keys的文件,若无,使用touch authorized_keys命令创建;

打开上述authorized_keys文件,将本地Windows系统上的id_rsa.pub里面的内容拷贝到authorized_keys中保存即可。

四、注意事项

1)当调试的程序和设备上的程序不一致时,VScode调试控制台会输出以下错误:

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值