参考《程序员的自我修养---连接、装载与库》

以下内容转贴自 http://www.cnblogs.com/xuxm2007/archive/2013/02/21/2920890.html

GNU Binutils工具

http://www.gnu.org/software/binutils/

http://sourceware.org/binutils/docs-2.23.1/

http://sourceware.org/binutils/docs-2.23.1/binutils/index.html

http://yunli.blog.51cto.com/831344/186727 (推荐)

http://wenku.baidu.com/view/fc8e70a1284ac850ad02424c.html

GNU Binutils是一套二进制工具集,提供了一系列用来创建、管理和维护二进制目标文件的工具程序。Binutils包括以下工具:

The GNU Binutils are a collection of binary tools. The main ones are:

  • ld - the GNU linker.
  • as - the GNU assembler.

But they also include:

  • addr2line - Converts addresses into filenames and line numbers.
  • (如果程序编译的时候,添加了-g选项,该命令可以从符号表里面的地址找到对应的代码行数信息)

[guest@host search_lau]$ dmesg |grep seg 
is_searcher_ser[5701]: segfault at 0000000000000000 rip 00000000006a1425 rsp 0000000043c0ef10 error 4 
is_searcher_ser[17723]: segfault at 0000000000000000 rip 00000000006a1425 rsp 0000000047196f10 error 4 
[guest@host search_lau]$ addr2line  00000000006a1425 -e bin/is_searcher_server 
/home/ascc_build1358835605903/b2b-isearch_cn/include/build/AttributeReader.h:118

  • ar - A utility for creating, modifying and extracting from archives.
  • c++filt - Filter to demangle encoded C++ symbols.

(由于C++多态在编译时对函数和变量的变化,造成阅读上的不便,该命令可以方便的查看)

[admin@inc-search-p4p-150-46 ~]$ nm is_searcher_server |grep discover 
000000000048c230 T _ZN5query14CIndexSearcher8discoverEPKcb 
[admin@inc-search-p4p-150-46 ~]$ nm is_searcher_server |grep discover |xargs c++filt 
000000000048c230 

query::CIndexSearcher::discover(char const*, bool)

  • dlltool - Creates files for building and using DLLs.
  • gold - A new, faster, ELF only linker, still in beta test.
  • gprof - Displays profiling information.
  • nlmconv - Converts object code into an NLM.
  • nm - Lists symbols from object files.
  • objcopy - Copys and translates object files.
  • objdump - Displays information from object files.
  • ranlib - Generates an index to the contents of an archive.
  • readelf - Displays information from any ELF format object file.
  • size - Lists the section sizes of an object or archive file.
  • strings - Lists printable strings from files.
  • strip - Discards symbols.
  • windmc - A Windows compatible message compiler.
  • windres - A compiler for Windows resource files.

http://davidgao.github.io/LFSCN/chapter06/binutils.html

addr2line

将程序地址翻译成文件名和行号;给定地址和可执行文件名称,它使用其中的调试信息判断与此地址有关联的源文件和行号

ar

创建、修改和提取归档

as

一个汇编器,将 gcc 的输出汇编为对象文件 into object files

c++filt

被链接器用于修复 C++ 和 Java 符号,防止重载的函数相互冲突

elfedit

更新 ELF 文件的 ELF 头

gprof

显示分析数据的调用图表

ld

一个链接器,将几个对象和归档文件组合成一个文件,重新定位它们的数据并且捆绑符号索引

ld.bfd

到 ld 的硬链接

nm

列出给定对象文件中出现的符号

objcopy

将一种对象文件翻译成另一种

objdump

显示有关给定对象文件的信息,包含指定显示信息的选项;显示的信息对编译工具开发者很有用

ranlib

创建一个归档的内容索引并存储在归档内;索引列出其成员中可重定位的对象文件定义的所有符号

readelf

显示有关 ELF 二进制文件的信息

size

列出给定对象文件每个部分的尺寸和总尺寸

strings

对每个给定的文件输出不短于指定长度 (默认为 4) 的所有可打印字符序列;对于对象文件默认只打印初始化和加载部分的字符串,否则扫描整个文件

strip

移除对象文件中的符号

libiberty

包含多个 GNU 程序会使用的途径,包括 getoptobstackstrerrorstrtol 和 strtoul

libbfd

二进制文件描述器库

libopcodes

一个库,用于处理 opcodes——处理器指令的 “可读文本” 版本;用于编制 objdump 这样的工具

GNU Binutils工具的更多相关文章

  1. GNU Binutils简介及基本用法

    [时间:2017-06] [状态:Open] [关键词:GNU, binutils, as, ld, ar, 基础工具,linux,链接器,汇编器] 0 简介 GNU Binary Utilities ...

  2. binutils工具集之---addr2line

    addr2line用于得到程序指令地址所对应的函数,以及函数所在的源文件名和行号. 在不少嵌入式开发环境中,编译器的名称往往不是gcc,而是想arm-rtems-gcc这样的,对于这种命名形式的编译器 ...

  3. 你知道 GNU Binutils 吗?【binutils】

    概述 从事 Linux 开发的朋友们都不可避免地用到一些工具,比如 objcopy.nm.objdump.readelf 等等.其实这一系列的工具,就是所谓的 Binutils,当然 GNU 就表示它 ...

  4. 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码

    不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解 GCC 生成 16 位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在 x86 实模式下运行的 ...

  5. Linux 桌面玩家指南:08. 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  6. mac 终端 使用 gnu coreutils 工具 ls 颜色显示

    mac 终端默认 ls 命令无颜色显示: 1: 使用 ls -G 可以显示基本颜色 2:使用 gnu coreutils 工具 mac 终端 使用 gnu coreutils 工具 ls 颜色显示 以 ...

  7. Binutils工具集常用工具

    GNU为GCC编译器提供了配套的辅助工具集(Binutils)http://www.gnu.org/software/binutils/ 1. addr2line ①将指定地址转换为对应的文件名和行号 ...

  8. 在windows下使用gnu的工具

    mingw Minimalist GNU for Windows http://www.mingw.org/ 想要在Windows使用wget,之前使用的是单独的安装包,现在又想使用bash的命令提示 ...

  9. binutils工具集之---nm

    nm用于列出程序文件中的符号.建立nmtest.c文件: #include<time.h> int global1; ; static int static_global1; ; void ...

随机推荐

  1. range与xrange之间的差异(转)

    range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列.range示例: >>> ra ...

  2. 发现js端日期跟php端日期格式不一致

    当程序没有问题,而php显示的日期和js显示的日期不一致,相差一天的时候或者其它,一定要看看php.ini中时区的配置是否合理.

  3. 算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列

    出处 http://segmentfault.com/blog/exploring/ 本章讲解:1. LCS(最长公共子序列)O(n^2)的时间复杂度,O(n^2)的空间复杂度:2. 与之类似但不同的 ...

  4. 基于HTML5实现五彩连珠小游戏

    今天给大家分享一款基于HTML5实现五彩连珠小游戏.这款游戏的规则:点击彩球移动到期望的位置,每移动一次,画面将随机出现3个新的彩球:当同一颜色的彩球连成5个一行或一列或一斜线时,这5个彩球同时消失, ...

  5. 如何在Linux下拷贝一个目录呢

    cp -af newadmin/movie/.   uploadfile/mallvideo/ 如何在Linux下拷贝一个目录呢?这好像是再简单不过的问题了. 比如要把/home/usera拷贝到/m ...

  6. iOS-UITextField中给placeholder动态设置颜色的四种方法

    思路分析: 0.自定义UITextField 1.设置占位文字的颜色找-->placeholderColor,结果发现UITextField没有提供这个属性 2.在storyboard/xib中 ...

  7. bigDecimal 使用小结

    关于四舍五入: 
ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2 
ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1 注 ...

  8. Android中“再按一次返回键退出程序”实现

    private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyC ...

  9. Java协变返回类型

    今天看到句话:“支持重写方法时返回协变类型”. 那么什么事协变类型?在网上找了找资料,大体上明白了. Java 5.0添加了对协变返回类型的支持,即子类覆盖(即重写)基类方法时,返回的类型可以是基类方 ...

  10. HTML5+CSS3-机器猫

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...