linux(armv7/8)下gdb的安装及查看方法

本文详细介绍了如何在Linux系统中安装和配置GDB进行远程交叉调试,包括下载GDB源码、编译、安装、设置环境变量以及使用GDBserver在ARM开发板上进行调试。此外,还讲解了如何通过交叉编译链创建适用于ARM平台的GDB,并在ARM端和PC端建立调试连接。

1. gdb安装

1.1 将gdb-10.1.tar.gz拷贝的/usr/local/目录下

(可以拷贝到任何你愿意的Linux目录下)或者进入 /usr/local中下载地址:http://ftp.gnu.org/gnu/gdb/

sudo wget http://ftp.gnu.org/gnu/gdb/gdb-10.1.tar.gz
1.2 解压 gdb-10.1.tar.gz
sudo tar -zxvf gdb-10.1.tar.gz
1.3 编译arm-linux-gdb ,这里可能需要添加权限

target指明编译生成的GDB用于调试ARM-LINUX程序prefix指明安装目录,注明调试平台, 到目录 gdb-10.1.tar.gz下

cd  gdb-10.1.tar.gz
$sudo ./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v
1.4 编译安装程序: (这个需要的时间比较长,耐心等待哟~)
  $sudo make -j4 
1.5 安装gdb软件,gdb-linux-arm
 # make install -j4 
1.6 把arm-linux-gdb加入环境变量

(:/usr/local/arm-gdb/bin)

 #gedit /etc/environment
1.7 更新环境变量
   #source /etc/environment 
1.8 确认安装成功
gdb -v
/usr/local/gdb-7.8.1$ gdb -v
GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "aarch64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".

可以在/usr/local/arm-gdb/bin目录下看到如下三个可执行文件

  arm-linux-gdb 
  arm-linux-gdbtui 
  arm-linux-run

查看

firefly@firefly:/usr/local/gdb-7.8.1$ ls /usr/local/arm-gdb/bin/
arm-linux-gdb  arm-linux-run

2.0 支持交叉编译

所以在使用交叉gdb时需要用交叉编译链编译出arm开发板上的执行文件,在PC机上运行能打开arm可执行文件的gdb工具,这就是 arm-linux-gdb
解压gdb源码编译gdb的工具:

tar xvf gdb-7.8.1.tar.gz
mkdir arm-gdb
./configure --target=arm-cortex_a9-linux-gnueabi  --prefix=/home/xxx/tools/gdb-7.8.1/arm-gdb/
make -j4
make install -j4

其中几个参数如下:

--target 指定目标机交叉编译器前缀,比如--target=arm-cortex_a9-linux-gnueabi ,交叉编译链
--host   指定编译后的运行主机,默认就是 x86_64-linux,如果要运行在PC上就不指定,他会选择系统的编译工具,如果是运行在arm上就用交叉编译链
--prefix 指定要安装的目录

添加环境变量
vim ~./brashrc
export PATH=$PATH:/home/xxx/tools/gdb-7.8.1/arm-gdb/bin

或者 export 查看后之直接安装

执行如下就说明安装成功

arm-cortex_a9-linux-gnueabi-gdb -v

3. 编译gdbserver

cd gdb/gdbserver
./configure  --target=arm-cortex_a9-linux-gnueabi --host=arm-cortex_a9-linux-gnueabi
make CC=arm-cortex_a9-linux-gnueabi -j4

就会在当前路径下生成 gdbserver,然后将gdbserver拷贝到arm开发板的/usr/bin/下

4.使用

得到上边两个必须的工具后,就看怎么使用

因为交叉编译的gdb基于网络通信来完成gdb调试,所以就需要分别在ARm端和PC端运行各自的工具来保持通信

首先在PC端编译出ARM端使用的可执行二进制文件
arm-cortex_a9-linux-gnueabi-gcc main.c -g
然后把 a.out拷贝到ARM端

在ARM端执行:

gdbserver 192.168.9.101:1234 a.out //ARM的IP地址:自定义的一个端口
在PC端执行:

arm-cortex_a9-linux-gnueabi-gdb a.out

在PC端的gdb中连接ARM的gdbserver

(gdb) target remote 192.168.9.101:1234 

你会看到ARM端出现

Remote debugging from host 192.168.9.68

这就说明gdb连接已经建立现在就可以使用gdb调试了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大江东去浪淘尽千古风流人物

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值