在搭建gdb调试环境时,本来以为是件很简单的事,可是出现了,几个错误,很是郁闷,弄了几个小时,现在把我遇到的问题及解决办法列出来,还有整个安装过程,如下:
在make时遇到的问题:
1、error: no termcap library found
2、error: makeinfo is required for compilation
解决办法:
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

以上的错误主要是缺少这些软件造成的,在安装gdb之前执行以上五个命令,一般就没有问题啦。
搭建过程:
在虚拟机Linux下ubuntu 2.6.32-39-generic,arm为飞凌OK6410
下载gdb-7.4.tar.gz(http://www.gnu.org/software/gdb/download/)
1、将gdb-7.4.tar.gz拷贝的/usr/local/目录下(可以拷贝到任何你愿意的Linux目录下)
2、解压gdb-7.4.tar.gz
tar -zxvf gdb-7.4.tar.gz
3、编译arm-linux-gdb 
到目录gdb-7.4下
cd gdb-7.4
   $./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v
   target指明编译生成的GDB用于调试ARM-LINUX程序,prefix指明安装目录
   $make
   #make install
   #vi /etc/profile
  export PATH=$PATH:/usr/local/arm/gdb/bin --把arm-linux-gdb加入环境变量
这样就可以在/usr/local/arm-gdb/bin目录下看到如下三个可执行文件
arm-linux-gdb arm-linux-gdbtui arm-linux-run
4、编译GDB Client 

   #cd ./gdb/gdbserver
   #export PATH=$PATH:/usr/local/arm-gdb/bin
   #./configure --target=arm-linux --host=arm-linux
   #vi config.h
   //#define HAVA_SYS_REG_H //注释此句
   #make CC=arm-softfloat-linux-gnu-gcc //编译用于目标机的stub程序 生成gdbserver是GDB客户端程序,在板子上运行。
5、将gdbserver通过你搭建的环境下载到开发板(我的环境是nfs)
6、实战调试
1.编辑文件

# vi gdbtest.c
1 #include <stdio.h>
2
3 int
4 func(int n){
5 int sum=0, i;
6 for (i=0; i<n; i++){
7 sum += i;
8 }
9 return sum;
10 }
11
12 int
13 main(void)
14 {
15 int i;
16 long result = 0;
17 for (i=0; i<=100; i++){
18 result += i;
19 }
20
21 printf("result[1-100] = %d \n", result);
22 printf("resutl[1-225] = %d \n", func(255));
23
24 return 0;
25 }
# arm-linux-gcc -g gdbtest.c -o gdbtest // 交叉编译

2.下载文件到目标板: gdbtest和gdbserver

假设 host pc ip:192.168.0.231
  board ip:192.168.0.232

将文件拷贝到目标板上:

先将gdbtest和gdbserver两个文件拷贝到主机的/tftpboot目录下

在目标板的Linux中运行:

#mount 192.168.0.232:/tftpboot /mnt/nfs
#cd /mnt/nfs
#ls

看是否有gdbtest和gdbserver两个文件。

3.运行调试

client board:
  #./gdbserver 192.168.0.231:1234 gdbtest // 目标板上运行gdbtest 监听端口1234
host pc:
#cd /usr/local/arm-gdb/bin/
#copy gdbtest /usr/local/arm-gdb/bin/ // 将前面编译的文件gdbtest拷贝到此目录
#./arm-linux-gdb gdbtest
  (gdb)target remote 192.168.0.232:1234 // 连接到开发板 成功后就可以进行调试 
(gdb)list or l
(gdb)break func
(gdb)break 22
(gdb)info br
(gdb)continue or c // 这里不能用 run
(gdb)next or n
(gdb)print or p result
(gdb) finish // 跳出func函数
(gdb) next
(gdb) quit

建立连接后进行gdb远程调试和gdb本地调试方法相同

参考网址:
http://blog.chinaunix.net/uid-25119314-id-226230.html

转载于:https://blog.51cto.com/3633188/821284

arm-linux-gdb正确无错误安装相关推荐

  1. glib 2.0 arm linux,glib源码安装使用方法

    glib库是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义.相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事 ...

  2. linux usb网卡驱动 ko,qf9700 USB网卡在x86 linux和arm linux上的驱动安装以及配置

    最近要在一块老板子上面移植openwrt,需要扩展网口,于是选择了qf9700这款USB网卡,附赠的光盘里面有提供在linux下面安装的驱动源代码,所以我们要自己编译驱动源代码生成内核加载模块,加载模 ...

  3. openssh arm linux 编译,openssh编译安装到ARM嵌入式系统中

    目录 一.SSHD编译(此步骤在虚拟机上执行) 1.1 在/root/目录下创建ssh目录 1.2 交叉编译zlib 1.3交叉编译openssl 1.4交叉编译openssh 二.移植(此步骤在开发 ...

  4. arm linux gdb调试工具,gdb+gdbserver调试arm-linux程序

    mmap作为struct file_operations的重要一个元素,mmap主要是实现物理内存到虚拟内存的映射关系,这样可以实现直接访问虚拟内存,而不用使用设备相关的read.write操作,mm ...

  5. 微凉大大,教你一步一步在linux中正确的安装Xcache加速php。

    首先,强烈吐槽,百度上的教程,都左复制右复制的,乱七八糟,缺东缺西的.借此微凉大大我提供我苦心整理好的教程.以便各位小菜能顺利的使用Xcache加速php,假设看完了,也操作了,还是失败了的话,请联系 ...

  6. gdb arm linux 下载,月光软件站 - 编程文档 - 其他语言 - 关于ARM Linux下的GDBServer

    在一块ARM Linux 开发板上,我想用GDBServer进行Debug. 首先尝试PC机(安装Fedora Core 1)上自带的gdbserver, 启动gdbserver:gdbserver ...

  7. 在Linux下正确安装VMWARE TOOLS

    在Linux下正确安装VMWARE TOOLS 1.以ROOT身份进入LINUX 2.按下CTRL+ALT组合键,进入主操作系统,点击VMWARE状态栏安装提示,或者点击SETTING菜单下的ENAB ...

  8. arm linux 安装 JRE

    arm linux 安装 JRE arm linux (非发行版)安装JDK和ubuntu上安装还是挺不一样的.现在ubuntu好像也可以在arm上运行,如果用ubuntu还是很方便的,但是好像ubu ...

  9. Ubuntu12.4 64位 安装 arm linux gcc 4.3.2

    一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid ...

最新文章

  1. 运维提升首选技能KubernetesPrometheus,你了解多少?(文末福利)
  2. 牛客华为机试第5题python
  3. idea编译的jsp存在哪里
  4. sensor曝光量和曝光行的区别_4个要点,告诉你拼多多新的产品怎么增加曝光量!...
  5. Java语言语法语义分析器设计与实现
  6. linux培训笔记1
  7. 在数据库中outlet、code、outline为联合组件。hibarnate插入可如此插入
  8. vuefullcalendar怎么判断切换上下月_房间太多、楼上楼下,终极解决家里wifi信号无缝切换问题...
  9. 小记安装python的MySQLdb模块
  10. Canvas鼠标手写签名-vue
  11. 基于Scrapy+MySQL爬取国家药监局100w+数据踩坑记录
  12. rf2o_laser_odometry和robot_localization
  13. 区块链的发展与未来前景!
  14. cannot read property 'options' of underfined
  15. Shiro的安装和基本使用
  16. matlab烟花动图程序,用PS制作漂亮烟花绽放效果的GIF图片
  17. js 点击下载文件、图片
  18. cas6.0.4 单点登录
  19. 制作U盘启动BT5(BackTrack5)
  20. vue 常用ui组件库

热门文章

  1. 自己定义WinXP的时间校正服务器
  2. c:forEach 取 map的值
  3. java泛型学习二:解惑通配符
  4. CORS 跨域-哪些操作不受同源限制
  5. SAAS平台的基本元素
  6. MySQL高级 - 案例 - 需求及环境准备
  7. SpringMVC的请求-文件上传-客户端表单实现
  8. EasyExcel实现读操作
  9. DiskFileItemFactory API详解
  10. ReactJS入门之JSX语法