嵌入式如何使用vscode/gdb/gdbserver调试程序或coredump(内存不足以运行gdb的情况下)

4 篇文章 0 订阅

一、直接使用GDB调试程序

①嵌入式性能、内存充足的情况下

下载任意版本gdb,交叉编译后,拷贝到嵌入式目标板直接运行gdb

②嵌入式性能、内存不足的情况下,使用gdbserver

下载任意版本gdb,交叉编译后,将gdbserver拷贝到嵌入式目标板
在嵌入式目标板 (ip 192.168.1.2) 运行如下命令

$ gdbserver 192.168.1.1:port bin_file

在PC调试环境 (ip 192.168.1.1) 运行如下命令,其中arm-gdb 是你的交叉编译工具链目录下的一个gdb工具,这里的arm-gdb不是下载的gdb交叉编译后的程序,下载的gdb交叉编译后只能在目标嵌入式板运行,交叉编译工具链目录下的gdb在PC调试环境运行如arm-linux-gnueabihf-gdb
** 注意运行程序只能用c,不能用r **

$ arm-gdb bin_file
(gdb) target remote 192.168.1.2:port
... (设置断点等gdb用法)
(gdb) c

二、调试coredump

①嵌入式性能、内存充足的情况下

下载任意版本gdb,交叉编译后,拷贝到嵌入式目标板直接运行

gdb bin_file core_file
(gdb) bt
②嵌入式性能、内存不足的情况下

在PC调试环境运行如下命令

arm-gdb bin_file core_file
(gdb) bt

三、交叉编译gdb

http://t.csdn.cn/RGWlX

四、通过vscode-gdbserver调试

gdbserver部分如上配置

vscode配置(ubuntu环境):

1、安装“Remote Development”插件

点击“调试” ->“添加配置”,然后选择“C++(GDB/LLDB)”选项,此时会创建“launch.json”文件

2、配置launch.json文件

①、 name:调试的项目名
②、 program:需要调试的应用程序可执行文件路径。
③、 cwd:需要调试的应用程序源码路径。
④、 miDebuggerPath:此项需要手动添加,用于指定所使用的交叉编译器 gdb 路径。
⑤、 miDebuggerServerAddress:此项需要手动添加,远程 gdbserver 服务器地址。

1 {
......
5 "version": "0.2.0",
6 "configurations": [
7 {
8 "name": "gdbtest",
9 "type": "cppdbg",
10 "request": "launch",
11 "program": "${workspaceFolder}/gdbtest",
12 "args": [],
13 "stopAtEntry": false,
14 "cwd": "${workspaceFolder}",
......
25 "miDebuggerPath":
"/home/zuozhongkai/linux/IMX6ULL/tool/gdb/bin/arm-linux-gnueabihf-gdb",
26 "miDebuggerServerAddress": "192.168.1.251:2001"
27
28 }
29 ]
30 }

3、开始调试

点击 VSCode 上的“调试” ->“启动调试”按钮
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值