GDB Server使用方法(基于vscode的可视化调试)

0 GDB Server是什么?

GDB Server 是一个允许你在一个设备(称为“目标机”)上运行和调试另一个设备(称为“主机”)上的程序的“桥梁”程序。

1 配置GDB Server

1.1 在SDK/编译工具文件夹里找到用于开发板的gdbserver和用于linux_x86平台的gdb调试应用

本例gdbserver所在路径为/opt/atk-dlmp135-toolchain/arm-buildroot-linux-gnueabihf/debug-root/usr/bin,使用file命令查看可知其能在开发板上运行:
在这里插入图片描述
本例linux_x86平台gdb调试应用所在路径为/opt/atk-dlmp135-toolchain/usr/bin/arm-buildroot-linux-gnueabihf-gdb,使用file命令查看可知其能在linux_x86平台上运行:
在这里插入图片描述
将gdbserver放到开发板上。

1.2 编辑launch.json文件

(1)点击如下图标:
在这里插入图片描述
(2)创建一个新的launch.json文件,内容如下:

{

    "version": "0.2.0",
    "configurations": [
        {
            "name": "Remote Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "/home/alientek/linux/c_code/cmake/auto_start/build/auto_start_test",
            "args": [
            "-g"],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "miDebuggerPath":"/opt/atk-dlmp135-toolchain/usr/bin/arm-buildroot-linux-gnueabihf-gdb",
            "miDebuggerServerAddress": "192.168.1.117:2345"
        }
    ]
}

其中需要修改的内容包括:
program:需要被调试的可执行文件名(在linux主机上的位置)
miDebuggerPath:用于linux_x86平台的gdb调试应用所在位置
miDebuggerServerAddress:开发板的IP和gdbserver使用的端口号

1.3 修改camke,生成支持调试的可执行文件

在cmake中添加如下两行即可:

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g")  
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g")

然后编译生成可执行文件,就是前面步骤中program指示的可执行文件。

1.4 将生成的可执行文件复制到开发板上,使用gdbserver运行

命令如下:

./gdbserver :2345 ../auto_start_test

2345即前文中miDebuggerServerAddress配置的端口号,可以根据实际情况更改为其它的。
在这里插入图片描述

2 使用GDB Server进行调试

添加断点:
在这里插入图片描述
在vscode依次点击如下图标:
在这里插入图片描述
此时程序停在断点位置:
在这里插入图片描述
点击顶部图标可以实现继续运行、逐过程、单步调试、单步跳出、重启、停止功能:
在这里插入图片描述
如下是单步执行,可以看到每步执行过程:
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NW嵌入式开发

感谢您的支持,让我们一起进步!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值