to myself 的分类学习日志

做自己想做的事
posts - 232, comments - 6, trackbacks - 0, articles - 0

GNU开发工具链

Posted on 2010-09-26 14:00 kongkongzi 阅读(356) 评论(0)  编辑 收藏 引用 所属分类: linux
 

GNU开发工具链

GNU binutils

  • binutils是一组二进制工具程序集,是辅助GCC的主要软件,它主要包括
  1. addr2line 把程序地址转换为文件名和行号。在命令行中给它一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指出在给出的地址上是哪个文件以及行号。
  2. ar 建立、修改、提取归档文件。归档文件是包含多个文件内容的一个大文件,其结构保证了可以恢复原始文件内容。
  3. as GNU汇编器,主要用来编译GNU C编译器gcc输出的汇编文件,他将汇编代码转换成二进制代码,并存放到一个object文件中,该目标文件将由连接器ld连接
  4. C++filt解码C++符号名,连接器使用它来过滤 C++ Java 符号,防止重载函数冲突。
  5. gprof 显示程序调用段的各种数据。
  6. ld 是连接器,它把一些目标和归档文件结合在一起,重定位数据,并链接符号引用,最终形成一个可执行文件。通常,建立一个新编译程序的最后一步就是调用ld
  7. ldd 该命令用于判断某个可执行的 binary 档案含有什么动态函式库。
  8. nm 列出目标文件中的符号。
  9. objcopy把一种目标文件中的内容复制到另一种类型的目标文件中.
  10. objdump 显示一个或者更多目标文件的信息。使用选项来控制其显示的信息。它所显示的信息通常只有编写编译工具的人才感兴趣。
  11. ranlib 产生归档文件索引,并将其保存到这个归档文件中。在索引中列出了归档文件各成员所定义的可重分配目标文件。
  12. readelf 显示ebf格式可执行文件的信息。
  13. size 列出目标文件每一段的大小以及总体的大小。默认情况下,对于每个目标文件或者一个归档文件中的每个模块只产生一行输出。
  14. strings 打印某个文件的可打印字符串,这些字符串最少4个字符长,也可以使用选项-n设置字符串的最小长度。默认情况下,它只打印目标文件初始化和可加载段中的可打印字符;对于其它类型的文件它打印整个文件的可打印字符,这个程序对于了解非文本文件的内容很有帮助。
  15. strip 丢弃目标文件中的全部或者特定符号。
  16. libiberty 包含许多GNU程序都会用到的函数,这些程序有: getopt, obstack, strerror, strtol strtoul.
  17. libbfd 二进制文件描述库.
  18. libopcodes 用来处理opcodes的库, 在生成一些应用程序的时候也会用到它, 比如objdump.Opcodes是文本格式可读的处理器操作指令.

 /Files/toMyself/GNU_development_tool_chain.zip