嵌入式arm-linux-gdb和 gdbserver 编译及调试

嵌入式arm-linux-gdb和 gdbserver 编译及调试

一:编译安装 arm-linux-gdb

1,  进入一下地址下载安装包 ftp://ftp.gnu.org/gnu/gdb/gdb-6.8a.tar.bz2  下载完成后解压得到gdb-6.8 .

2, 进入目录编译安装 cd gdb-6.8 ./configure --target=arm-linux --enable-sim--prefix=/usr/local/bin

3,  make  如果出现错误    cc1: all warnings being treated aserrors  请去掉相应Makefile 中的-Werror 则可以顺利编译通过。

4,  make install

 

二: 编译gdbserver

1,cd gdb-6.8/gdb/gdbserver

2,./configure --target=arm-linux --host=arm-linux      

3,make这样在gdb-6.8/gdb/gdbserver目录下就生成了一个gdbserver可执行文件,拷贝到目标开发板上

 

三:简单测试例程

 

1, 将gdbserver拷贝到目标开发板上 我的目标版地址是192.168.100.199 测试程序为 hello

 ./gdbserver 192.168.100.199:2345  hello (如果程序需要传递参数 ./gdbserver 192.168.100.199:2345  hello  LOG_FILE  3)

目标版显示

Process segmentationfaultcreated; pid = 22934

Listening on port 2345

 

2,pc机上我的是虚拟机,pc机静态IP设置192.168.100.199,虚拟机采用NAT方式联网。

1 ,arm-linux-gdb hello

2,target remote 192.168.100.66:2345

 执行上条指令后目标版显示

Processsegmentationfault created; pid = 22934

Listening on port2345

Remote debuggingfrom host 192.168.100.199

接下来可以用gdb 命令调试 目标版程序。

 

四:core 文件分析

1,ulimit –c 默认是0 不会生成core 文件,ulimit –c10000(kb) 设置core文件大小

如果目标版程序崩溃则会在执行程序的目录下成成core文件。

例如segmentationfault 程序段错误 生成core ,则把两文件和源文件 拷贝到同一目录下

arm-linux-gdb ./segmentationfault core 则可以定位错误,例如 可以输入bt 或where

五:可能需要安装下面的工具

sudo apt-get  install  texinfo
sudo apt-get  install  libncurses5-dev
sudo apt-get  install  m4
sudo apt-get  install  flex 
sudo apt-get  install  bison


 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值