开发板上如何使用GDB

嵌入式Linux的GDB调试环境由Host和Target两部分组成,Host端使用arm-linux-gdb,Target Board端使用gdbserver。调试时,应用程序在嵌入式目标系统上运行,而gdb调试在Host端。

 一、编译安装gdb+gdbserver

 首先下载gdb源码,我下载的是gdb-6.6.tar.gz。

$tar xvzf gdb-6.6.tar.gz

$mkdir mygdb

$cd mygdb

必须要在你想要安装的目录下执行下边的命令。

$../gdb-6.6/configure --target=arm-linux   \ --prefix=/home/a/mygdb

参数说明:target是你的目标板,我的是arm-linux,prefix是你要安装的目标文件夹。

$make

$make install

然后建立gdbserver。

$mkdir mygdbserver

$cd mygdbserver

$chmod +x ../gdb-6.6/gdb/gdbserver/configure

$CC=arm-linux-gcc ../gdb-6.6/gdb/gdbserver/configure \

--host=arm-linux  --prefix=/home/a/mygdbserver

$make

$make install

$arm-linux-strip gdbserver

去除调试信息。不去好像不行,我的就不行,去了就ok了。

复制到你的开发板上就可以了。

 二、调试步骤

1、交叉编译,带参数-g加入调试信息。

假设要调试的程序为test.c。

#arm-linux-gcc -g test.c -o test

2、在Target Board开启gdbserver

#gdbserver  <host-ip>:2345 test

gdbserver开始监听2345端口(你也可以设其他的值),然后启动test,你会看到“Process test created:pid=88”

3、回到Host端

#arm-linux-gdb test

最后一行显示:This GDB was configured as “--host=i686-pc-linux-gnu,--target=arm-linux”...

说明此gdb在X86的Host上运行,但是调试目标是ARM代码。

(gdb)target remote <target-board-ip>:2345

注意:你的端口号必须与gdbserver开启的端口号一致,这样才能进行通信。

建立链接后,就可以进行调试了。调试在Host端,跟gdb调试方法相同。注意的是要用“c”来执行命令,不能用“r”。因为程序已经在Target Board上面由gdbserver启动了。结果输出是在Target Board端,用超级终端查看。

 

4、退出GDB:

    (GDB)Quit

这时就可以调试目标板上的程序了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您的问题似乎不完整或不清楚,请提供更具体的信息和详细的上下文。如果您是在使用开发板上的Ubuntu操作系统,并且想要在VSCode中使用GDBGDBServer进行调试,您可以按照以下步骤进行操作: 1. 在Ubuntu中安装GDBGDBServer,您可以使用以下命令: ``` sudo apt-get install gdb gdbserver ``` 2. 在VSCode中安装C/C++插件,该插件可以让您在VSCode中进行C/C++开发和调试。 3. 在您的项目中配置launch.json文件,以便VSCode可以启动GDBGDBServer进行调试。以下是一个示例配置: ``` { "version": "0.2.0", "configurations": [ { "name": "Debug", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/<your_program>", "args": [], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", "setupCommands": [ { "description": "Enable gdbserver", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "Start gdbserver", "text": "-target-select remote :<your_port>", "ignoreFailures": false } ], "preLaunchTask": "build" } ] } ``` 在上述配置中,您需要指定您的程序的路径和端口号,以及GDBGDBServer的路径。在启动调试会话之前,您需要确保在开发板上已经启动了GDBServer,并且端口号与launch.json文件中的端口号匹配。 希望这些信息能够帮助您解决问题。如果您需要更多帮助,请提供更具体的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值