嵌入式端交叉编译GDB

调试时有时需要分析coredump文件,设备没配置网线,就需要导出coredump文件再分析,是在麻烦得很。于是选择交叉编译gdb源码,直接在开发板上运行。

1. 交叉编译GDB

1. 1 获取与当前SDK提供的一致的gdb版本

	  arm-oe-linux-gnueabi-gdb -version
	查看到版本后,去下载对应版本的源码:
		http://ftp.gnu.org/gnu/gdb/

1.2 执行交叉编译GDB

./configure --prefix=/mnt/d/ubuntu_share/gdb-7.9.1/gdb7.9.1-arm_build --host=arm-linux CC=arm-oe-linux-gnueabi-gcc CXX=arm-oe-linux-gnueabi-g++ LD=arm-oe-linux-gnueabi-ld AR=arm-oe-linux-gnueabi-ar
make 
make install 
编译出来的文件在配置的目录下的bin目录,拷贝gdb到开发板即可

1.3 交叉编译依赖的ncurses

在开发板上运行大概率缺少依赖库libncurses.so,因为一般的嵌入式设备不会集成显示界面的库,因此需要单独集成
下载ncurser源码:http://ftp.gnu.org/pub/gnu/ncurses/

./configure --prefix=/mnt/d/ubuntu_share/ncurses-5.9/ncurses-arm_build --host=arm-linux CC=arm-oe-linux-gnueabi-gcc CXX=arm-oe-linux-gnueabi-g++ LD=arm-oe-linux-gnueabi-ld AR=arm-oe-linux-gnueabi-ar --with-shared
因为我依赖的是so文件,因此添加–with-shared参数

make

make install

在配置目录下lib目录中拷贝对应的so文件到开发板即可运行gdb

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐