Chinaunix首页 | 论坛 | 博客
  • 博客访问: 254368
  • 博文数量: 68
  • 博客积分: 3061
  • 博客等级: 中校
  • 技术积分: 652
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-27 11:39
文章分类

全部博文(68)

文章存档

2018年(1)

2017年(2)

2016年(1)

2014年(2)

2012年(6)

2011年(14)

2010年(38)

2008年(4)

我的朋友

分类: LINUX

2010-09-15 10:48:19

一、gcc:GNU Compiler Collection
  功能:将高级语言变为汇编,驱动各工具的执行。
  包含了:gcc/g++/g77/cc...

二、binutils:GNU Binary utilities
  功能:将汇编变为二进制,查看二进制文件信息,和一些二进制工具。
  包含了:as,ld(汇编和链接),objdump,readelf,strip,ar,nm,ldd;gprof,gpcov.

三、glibc:GNU C Library
  功能:提供库函数。

四、二进制工具简要说明
  1、objdump
    1)功能:反汇编各种格式的目标文件和可执行文件。
    2)常用选项:-d 只反汇编代码段 -D 反汇编数据段和代码段 -S 混合出源代码和汇编代码,编译是需               加-g选项    
  2、readelf
    1)功能:显示ELF格式信息。
    2)常用选项:-e 显示头信息,包括elf file header,section header,program heade 
               -r 显示重定位信息 -s 显示符号表信息 -a显示所有信息
  3、strip
    1)功能:删除输入文件的符号表和指定section
    2)常用选项:-o 输出文件名

  4、ar
    1)功能:管理归档文件(*.a),也叫静态库。
    2)常用选项:d m q r t x人别为:删除 移动 添加 替换 显示 取出归档文件的内容
    3)示例:ar x /lib/libc.a
            取出libc.a中的所有目标文件(*.o)到当前目录
            ar q libmy.a obj1.o obj2.o
            将obj1.o和obj2.o加入到libmy.a
  5、nm
    1)功能:显示目标文件、可执行文件和归档文件(*.a)中的符号信息
    2)示例:nm /lib/libc.a > symbol

  6、ldd
    1)功能:输出目标文件和共享库的依赖关系。
  
  7、gprof
    1)功能:编译要加上-pg选项,根据执行程序时产生的数据(gmon.out),输出profile信息,包括:每个函数执行时间,所占比例,调用关系等。
    2)用法:gprof option 编译出的执行程序 gmon.out
       -b不再输出统计图表中每个字段的详细描述。
            -p 只输出函数的调用图(Call graph 的那部分信息)。
            -q 只输出函数的时间消耗列表。
           -E Name不再输出函数Name 及其子函数的调用图,此标志类似于 -e 标志,但它在总时间和百                分比时间的计算中排除了由函数Name 及其子函数所用的时间。
          -e Name 不再输出函数Name 及其子函数的调用图(除非它们有未被限制的其它父函数)。可                以给定多个 -e 标志。一个 -e 标志只能指定一个函数。
          -F Name 输出函数Name 及其子函数的调用图,它类似于 -f 标志,但它在总时间和百分                         比时间计算中仅使用所打印的例程的时间。可以指定多个 -F 标志。一个 -F 标志只能指定一              个函数。-F 标志覆盖 -E 标志。
          -f Name输出函数Name 及其子函数的调用图。可以指定多个 -f 标志。一个 -f 标志只能指定一个             函数。
          -z 显示使用次数为零的例程(按照调用计数和累积时间计算

  8、gcov
    1)功能:另一个profiling工具,可以分析出一次执行中每行源代码的执行次数,branch跳转的情               况,可分析程序的关键代码和构造testsuite。
    2)使用方法:编译时加-fprofile-arcs -ftest-coverage,最好不加优化选项,针对每个源文件产生的*.bb,*.bbg,*.da.显示:gcov *.c 生成*.gcov。

阅读(877) | 评论(0) | 转发(0) |
0

上一篇:mdk和rvds区别

下一篇:查看服务 端口

给主人留下些什么吧!~~