gdb与gdbserver的编译

1、源码下载:

gdb源码下载地址 以gdb-10.2版本为例,(版本体积一大一小交替出现,小版本疑似存在问题)

解压:tar zxvf gdb-10.2.tar.gz 

2、编译gdb(运行在主机端)

 

方法1(推荐)

创建文件夹_build并进入

mkdir _build
cd _build

配置、编译、安装

1 ../configure --prefix=/data1/peifeixiang/work/project/gdb-10.2/_result --host=x86_64-linux-gnu --target=aarch64-linux-gnu --program-prefix=aarch64-linux-gnu-
2 make
3 make install

--prefix=/data1/peifeixiang/work/project/gdb-10.2/_result:最终成果物保存位置

--host=x86_64-linux-gnu:编译链,宿主机gdb要运行的平台为x86_64架构的linux系统

--target=aarch64-linux-gnu:gdb要调试的程序运行在aarch64-linux-gnu架构的ARM开发板平台

--program-prefix=aarch64-linux-gnu-:成果物文件名前缀

参考: 交叉编译之./configure --build,--host,--target设置_configure交叉编译-CSDN博客

方法2

不进入 _build文件夹,直接在gdb-10.2文件夹下执行

1 ./configure --prefix=/data1/peifeixiang/work/project/gdb-10.2/_result --host=x86_64-linux-gnu --target=aarch64-linux-gnu --program-prefix=aarch64-linux-gnu-
2 make
3 make install

 

3、编译gdbserver(运行在嵌入式板端)(编译完gdb后,再用下面的方法编译gdbserver会报错,原因未知,需重新解压。。。。。。。

1 ./configure --prefix=/data1/peifeixiang/work/project/gdb-10.2/gdbserver/_result --host=aarch64-linux-gnu --target=aarch64-linux-gnu --disable-gdb
2 make
3 make install

#静态编译

执行make前 进入gdb-10.2\gdbserver,打开Makefile,搜索 CFLAGS,将

1 CFLAGS = -g -O2
2 CXXFLAGS = -g -O2
3 CPPFLAGS = 

改为

CFLAGS = -g -O2 -static
CXXFLAGS = -g -O2 -static
CPPFLAGS =  -static

LDFLAGS 也同样修改

gdb或gdbservice过大的话可使用strip进行瘦身参考:https://developer.aliyun.com/article/243857、https://www.cnblogs.com/pengdonglin137/p/4751279.html

 

参考文件:

https://zhuanlan.zhihu.com/p/295099630

https://www.cnblogs.com/my_life/articles/10675094.html

posted @ 2023-02-21 20:21  墨尔基阿德斯  阅读(544)  评论(0编辑  收藏  举报