gdb交叉编译到arm开发板
2017-11-16 20:59
190 查看
前言
最近手头上的项目出现bug,出现偶尔崩溃现象,而且是随机出现感觉bug如幽灵般无迹可寻。无奈之下只能搬出gdb调试大法,那么问题来了,在嵌入式arm板上一切都是空白的,几乎所有的工具软件都得自己编译移植到arm板子上。在经过一番折腾之后终于将gdb成功的放到板子上运行。过程是辛苦的,结果是欣喜的,遂在此记下移植过程,仅供学习参考。
工具、开发环境简介
1、pc系统:ubuntu12.04
2、arm系统:smart210+linux2.6.4
3、交叉编译工具:arm-none-linux-gnueabi-gcc-4.5.1
4、gdb版本:gdb7.6.2
gdb下载地址:http://ftp.gnu.org/gnu/gdb/
移植步骤
1、下载gdb7.6.2.tar.gz ,并放到合适的路径下,我将其放到/usr
解压文件: sudo tar -xvf gdb7.6.2.tar.gz
新建文件夹用于存放编译生成的gdb文件:sduo mkdir arm-linux-gdb
2、配置初始化gdb
2.1、配置编译工具环境变量:export PATH=$PATH:=/usr/local/4.5.1/bin
(设置下交叉编译工具的路径,防止编译时找不到编译器,具体路径要具体改)
2.2、配置初始化gdb,生成Makefile文件
sudo ./configure –host=arm-none-linux-gnueabi –target=arm-none-linux-gnueabi –enable-shared –prefix=/usr/arm-linux-gdb –without-x –disable-gdbtk –disable-tui –without-included-regex –without-included-gettext
注:关于上面的参数不明白的可以通过:sudo ./configure –help 命令来详细的查看,再次不再赘述。
2.3、修改Makefile文件,进行交叉编译
由于生成的Makefile文件里关于交叉编译工具的参数不对,需要手动来修改一下。
sudo chmod 777 Makefile
sudo vim Makefile +356
将Makefile修改为:
![](https://img-blog.csdn.net/20171117093126011?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzY0MzA2MjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
sudo make -j4
等待编译完成后执行:
sudo make install
然后切换到安装路径:
cd /usr/arm-linux-gdb
在该路径下可以看到生成的gdb工具
如果生成的gdb文件太大,可以做如下处理:
sudo arm-linux-strip gdb
这样处理后文件的大小可以变小很多。
将生成的gdb工具放到arm板子上就可以开始调试程序了,至此交叉编译gdb告一段落。
参考文章:http://blog.sina.com.cn/s/blog_7c95e5850100u7d2.html
最近手头上的项目出现bug,出现偶尔崩溃现象,而且是随机出现感觉bug如幽灵般无迹可寻。无奈之下只能搬出gdb调试大法,那么问题来了,在嵌入式arm板上一切都是空白的,几乎所有的工具软件都得自己编译移植到arm板子上。在经过一番折腾之后终于将gdb成功的放到板子上运行。过程是辛苦的,结果是欣喜的,遂在此记下移植过程,仅供学习参考。
工具、开发环境简介
1、pc系统:ubuntu12.04
2、arm系统:smart210+linux2.6.4
3、交叉编译工具:arm-none-linux-gnueabi-gcc-4.5.1
4、gdb版本:gdb7.6.2
gdb下载地址:http://ftp.gnu.org/gnu/gdb/
移植步骤
1、下载gdb7.6.2.tar.gz ,并放到合适的路径下,我将其放到/usr
解压文件: sudo tar -xvf gdb7.6.2.tar.gz
新建文件夹用于存放编译生成的gdb文件:sduo mkdir arm-linux-gdb
2、配置初始化gdb
2.1、配置编译工具环境变量:export PATH=$PATH:=/usr/local/4.5.1/bin
(设置下交叉编译工具的路径,防止编译时找不到编译器,具体路径要具体改)
2.2、配置初始化gdb,生成Makefile文件
sudo ./configure –host=arm-none-linux-gnueabi –target=arm-none-linux-gnueabi –enable-shared –prefix=/usr/arm-linux-gdb –without-x –disable-gdbtk –disable-tui –without-included-regex –without-included-gettext
注:关于上面的参数不明白的可以通过:sudo ./configure –help 命令来详细的查看,再次不再赘述。
2.3、修改Makefile文件,进行交叉编译
由于生成的Makefile文件里关于交叉编译工具的参数不对,需要手动来修改一下。
sudo chmod 777 Makefile
sudo vim Makefile +356
将Makefile修改为:
sudo make -j4
等待编译完成后执行:
sudo make install
然后切换到安装路径:
cd /usr/arm-linux-gdb
在该路径下可以看到生成的gdb工具
如果生成的gdb文件太大,可以做如下处理:
sudo arm-linux-strip gdb
这样处理后文件的大小可以变小很多。
将生成的gdb工具放到arm板子上就可以开始调试程序了,至此交叉编译gdb告一段落。
参考文章:http://blog.sina.com.cn/s/blog_7c95e5850100u7d2.html
相关文章推荐
- 用Eclipse和GDB构建ARM交叉编译和在线调试环境
- gdb+gdbserver交叉编译
- 交叉编译arm gdb
- ARM开发板上交叉编译usb转串口驱动
- 交叉编译环境以及ARM开发板上-/bin/sh: ./hello: not found
- 交叉编译ARM下的GDB
- Linux下交叉编译GDB
- Linux下交叉编译gdb,gdbserver+gdb的使用以及通过gdb调试core文件
- Linux下交叉编译gdb和gdbserver
- gdb 7.7 交叉编译
- 交叉编译GDB工具, 使GDB运行在嵌…
- 交叉编译gdb和gdbserver
- 交叉编译gdb遇到no termcap library found的解决方法
- Cpufreq应用程序在arm开发板端的交叉编译及实现
- 嵌入式 用GDB Server进行远程调试交叉编译工具以及运用小结
- 交叉编译环境以及ARM开发板上-/bin/sh: ./hello: not found
- Linux下交叉编译gdb和gdbserver
- 学习记录:交叉编译环境配置(buildroot and gdb&gdbserver)
- 解决Windows上交叉编译qt gdb for raspberry pi报错
- arm-linux-gdb和gdbserver调试交叉编译的程序