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

被折叠的 条评论
为什么被折叠?



