GDB之交叉编译

今天调试新平台的时候,设备升级后挂了,发现没有编译过64位的gdb工具,那就写一篇文章记录一下编译步骤,以备后用。

1、确定目标平台参数
交叉编译链:aarch64-ca53-linux-gnu-gcc

$ aarch64-ca53-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/opt/novatek/aarch64-ca53-linux-gnueabihf-8.4.01/bin/aarch64-ca53-linux-gnu-gcc.br_real
COLLECT_LTO_WRAPPER=/opt/novatek/aarch64-ca53-linux-gnueabihf-8.4.01/bin/../libexec/gcc/aarch64-ca53-linux-gnu/8.4.0/lto-wrapper
Target: aarch64-ca53-linux-gnu

2、下载gdb源码并解压

下载地址:https://www.sourceware.org/gdb/download/

解压:
mkdir gdb-8.3
tar -xvf gdb-8.3.tar.gz -C gdb-8.3/

由于我之前下载过,我就不重新下了,以gdb-8.3为例,不同版本有差别

3、配置gdb参数

cd gdb-8.3/
./configure --prefix="$PWD/install" --host=aarch64-ca53-linux-gnu CC=aarch64-ca53-linux-gnu-gcc CXX=aarch64-ca53-linux-gnu-g++ LD=aarch64-ca53-linux-gnu-ld AR=aarch64-ca53-linux-gnu-ar

–host:对应目标平台参数中的Target
CC、CXX、LD、AR都是在Target基础上添加后缀

4、编译

make -j4
说明:-j4是以4线程编译,可加快编译速度

5、安装

make install

如果文件太大,可以考虑使用strip瘦身一下
aarch64-ca53-linux-gnu-strip gdb

6、gbd可执行文件位置
在配置gdb参数时,我们指定了--prefix="$PWD/install",最终在gdb-8.3/install目录下可以找到gdb文件,建议根据芯片平台重命名一下,我这里mv gdb gdb_98530,主要怕跟其他平台的gdb搞混淆。

7、题外话gdbserver
有时候设备内存不足,无法运行gdb的时候还想用gdb调试怎么办,我们可以使用远程调试的方式将gdbserver放在设备中运行,在编译服务器上运行gdb,连接到设备中的gdbserver,进行调试。具体调试方法有空我写一个总结。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值