摘要:gdb-6.6使用了autoconf/automake,因此通过设置configure脚本的--target,--host,--prefix参数就可以方便的移植到别的平台。--target指定编译后的文件针对的是什么目标板,一般设置为交叉编译器的前缀,比如--target=arm-linux, --target=mips-linux,--target=armv5-linux-uclibc, --t...
阅读全文
随笔分类 - 编译器
摘要:使用gdbserver远程调试 1.默认crosstool交叉编译器没有自带gdbserver,需要自行编译 到GNU官方FTP下载,目前最新版的是gdb-6.7.1下载地址:http://ftp.gnu.org/gnu/gdb/ 注:若已有gdbserver,可以直接跳到步骤4 2.编译gdbserver编译GDB源码时只需要编译出gdbserver就可以了,交叉编译器自带arm-linux...
阅读全文
摘要:使用gdbserver是在arm环境中调试程序的有效手段。经过单步调试可以更好的了解程序的执行。 需要的环境。 gdbserver:运行于arm平台。 armv4l-unknown-linux-gdb:运行于host平台,也就是开发环境(PC)。 使用步骤。 在arm上执行 gdbserver 10.191.2.152:5000 a.out // 输入 Process a.out created;...
阅读全文
摘要:1. 安装标准的C开发环境,由于Linux安装默认是不安装的,所以需要先安装一下(如果已 经安装好的话,就可以免去这一步了): #sudo apt-get install gcc g++ libgcc1 libg++ make gdb2. 下载arm-linux-gcc-3.4.1.tar.bz2到任意的目录下,我把它下载到了我的个人文件夹 里 /home/wrq arm-linux-...
阅读全文
摘要:以前在安裝gdbserver的过程中出现了很多问题,导致导致实验没有成功。今天有搜到一些资料,并重新做了一遍,基本上算是成功了。虽然对当中的一些问题还是没搞很明白,但是还是记录下来,以备后用。远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接。使用GDB标准程串行协议协同工作,实现对目标机上的系统内核和上 层应用的监控和调试功能。调试stub是嵌入式系统中的一段代码,...
阅读全文
摘要:关于gcc、glibc和binutils模块之间的关系,以及在现有系统上升级glibcgcc、glibc和binutils模块之间的关系1) gcc(gnu collect compiler)是一组编译工具的总称。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持,如libgcc_s.so、libstdc++.so等...
阅读全文
摘要:1) gcc(gnu collect compiler)是一组编译工具的总称。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的 运行库的支持,如libgcc_s.so、libstdc++.so等。2) binutils提供了一系列用来创建、管理和维护二进制目标文件的工具程序,如汇编(as)、连接(ld)、静态库归档(ar)、反...
阅读全文
摘要:读赵烔博士的 Linux 0.11 内核完全注释, 受益良多,总想在 Linux 0.11 搭建一个开发环境,这样可以按自己的想法修改内核代码并编译了。抱着这个想法,今天在 VMWare 上实践了一回。现将操作过程记录于下,一来做个备忘,二来若对有此想法的人稍有帮助,则甚欣慰矣!1. 获取 gcclib-1.40.taz2. 通过 VMWare 创建一个软盘映像文件 fd.flp3. 在 VMWa...
阅读全文
摘要:有时为了高效,有时为了直接控制硬件,有些模块我们不得不直接用汇编语言来编写,并且对外提供调用的接口,隐藏细节,这其实就是内联汇编。如何使用内联汇编?我们就以 GCC 为例,一窥其中奥秘
阅读全文
摘要:1. 当程序出错并产生core 时快速定位出错函数的办法 gdb 程序名 core文件名(一般是core,也可能是core.xxxx) 2. 调试程序使用的键rrun运行.程序还没有运行前使用c cuntinue运行到下一断点处qquit 退出tabtab命令补全功能hhelp帮助sstep 跟入函数nnext 执行下一行的代码。如果是函数调用,也当作一行代码,执行到此函数返回bbreakpoi...
阅读全文
摘要:gcc/g++在执行编译工作的时候,总共需要4步
1.预处理,生成.i的文件[预处理器cpp]
2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]
3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4.连接目标代码,生成可执行程序[链接器ld]
阅读全文
摘要:GNU binutils是一组二进制工具集。包括:addr2line ar gprof nm objcopy objdump ranlib size strings strip. 本文归纳他们的常用法。
阅读全文
摘要:在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。 随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来越多的进入人们的生活之中,应用范围越来越广。 在裁减和定制Linux,运用于你的嵌入式系统之前,由于一般嵌入式开发系统存储大小有限,通常你都要在...
阅读全文
摘要:首先要准备好编译用的软件包: 软件包(找不到清直接在网站生下载)wget -c http://ftp.gnu.org/gnu/binutils/binutils-2.17.tar.bz2wget -c http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2wget -c http://ftp.gnu.org/gnu/glibc/glibc-2....
阅读全文


浙公网安备 33010602011771号