交叉编译GDB工具
来源:互联网 发布:网络招投标系统 编辑:程序博客网 时间:2024/06/06 02:31
GDB是Linux下用来调试驱动的利器,可以单步、设置端点、查看变量等等,简直跟一个硬件调试器一样,很方便。现在要在Linux虚拟机中编译一个GDB,然后下载到Linux开发板中运行,好方便调试开发板的驱动。
如下步骤:
1 下载资源,共需要两个资源,一个是termcap,一个是gdb,前一个是gdb要编译所依赖的库。地址如下:(需要注意的是,下载的时候不要贪图最新版本,因为很有可能你装的编译器不支持最新版本的一些c语言特性,编译失败,我用的gdb 7.3, termcap可以用最新的)
ftp://ftp.gnu.org/gnu/termcap
http://www.gnu.org/software/gdb/download/
2 编译termcap。解压缩安装包以后进入目录,执行如下命令:
./configure --host=arm-linux --prefix="$PWD/../gdb"
说明:也就是执行目录下的configure,指定host为arm-Linux,并且指定操作目录为上一层目录中的gdb文件夹
执行完了以后生成Makefile,需要在里面将gcc改成arm-Linux-gcc,ar改成arm-Linux-at,ranlib改成arm-Linux-ranlib,改完以后,执行如下:
makemake install执行完成以后,上层目录gdb/lib中有一个libtermcap.a
3 编译gdb。解压缩gdb安装包并进入目录,执行如下命令:
./configure --target=arm-linux --host=arm-linux --prefix="$PWD/../gdb" --without-x --disable-gdbtk --disable-tui --without-included-regex --without-included-gettext LDFLAGS="-L$PWD/../gdb/lib" CPPFLAGS="-I$PWD/../gdb/include" LD="-ltermcap"
说明:此命令制定了target,host以及操作目录为上层目录中的gdb文件夹,然后执行如下命令:
makemake install
执行完后会在上层目录中gdb/bin中生成三个可执行文件:gdb, gdbserver, run,可以将这个几个文件拷贝到linux开发板的特定目录后在/bin中生成软链接,或者直接放到/bin中。例如我放到/usr/local/gdb中后生成软链接并修改权限:
# ln -s /usr/local/gdb/gdb /bin/gdb# ln -s /usr/local/gdb/gdbserver /bin/gdbserver# ln -s /usr/local/gdb/run /bin/run
# chmod 777 /bin/gdb# chmod 777 /bin/gdbserver # chmod 777 /bin/run
4 使用方法。使用的时候直接输入:(注意:可执行文件需要编译选项中加-g才能被gdb使用,并且调试的时候可执行文件所在文件夹必须包含源码)
gdb 可执行文件名
就可以调试程序了。
# gdb test_helloGNU gdb (GDB) 7.3.1Copyright (C) 2011 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law. Type "show copying"and "show warranty" for details.This GDB was configured as "arm-linux".For bug reporting instructions, please see:<http://www.gnu.org/software/gdb/bugs/>...Reading symbols from /driver_test/test_hello...done.(gdb) list3 #include <fcntl.h>4 #include <errno.h>5 #include <stdlib.h>678 int main(void)9 {10 int fd;11 int retval;12 unsigned char temp[100]={0};
gdb的使用方法推荐链接:
http://www.cnblogs.com/hankers/archive/2012/12/07/2806836.html
http://blog.csdn.net/21cnbao/article/details/7385161
阅读全文
0 0
- 交叉编译GDB工具
- gdb gdb交叉编译
- arm-linux-gdb 交叉编译工具的安装使用
- arm-linux-gdb 交叉编译工具的安装使用
- ubuntu 下交叉编译工具 ---gdb的安装与使用
- arm-linux-gdb 交叉编译工具的安装使用
- gdb 交叉编译arm
- gdb+gdbserver交叉编译
- gdb+gdbserver交叉编译
- 交叉编译gdb
- 交叉编译gdb
- 交叉编译GDB
- ARM GDB交叉编译
- goke 交叉编译gdb
- 交叉编译arm gdb
- 怎么交叉编译gdb
- 交叉编译GDB工具, 使GDB运行在嵌…
- 交叉编译gdb与gdbserver
- Java:<返回二维数组中最大值及下标>
- 如何使用keytool查看android应用签名文件的信息
- Java transient关键字
- 【Java学习笔记】40:棋盘覆盖问题的可视化(基于JFrame)
- opencv split
- 交叉编译GDB工具
- 网页返回上一页刷新页面
- 【CSS实现图片等比例缩小不变形】
- Java基础之运算符
- ubuntu 系统的ssh配置
- 关于数据结构->链表的一些基本操作
- MySQL组复制(Group Replication)
- MacOS 开发
- 多态