GNU Binutils工具
参考《程序员的自我修养---连接、装载与库》
以下内容转贴自 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
T
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 |
移除对象文件中的符号 |
|
|
包含多个 GNU 程序会使用的途径,包括 getopt、obstack、strerror、strtol 和 strtoul |
|
|
二进制文件描述器库 |
|
|
一个库,用于处理 opcodes——处理器指令的 “可读文本” 版本;用于编制 objdump 这样的工具 |
GNU Binutils工具的更多相关文章
- GNU Binutils简介及基本用法
[时间:2017-06] [状态:Open] [关键词:GNU, binutils, as, ld, ar, 基础工具,linux,链接器,汇编器] 0 简介 GNU Binary Utilities ...
- binutils工具集之---addr2line
addr2line用于得到程序指令地址所对应的函数,以及函数所在的源文件名和行号. 在不少嵌入式开发环境中,编译器的名称往往不是gcc,而是想arm-rtems-gcc这样的,对于这种命名形式的编译器 ...
- 你知道 GNU Binutils 吗?【binutils】
概述 从事 Linux 开发的朋友们都不可避免地用到一些工具,比如 objcopy.nm.objdump.readelf 等等.其实这一系列的工具,就是所谓的 Binutils,当然 GNU 就表示它 ...
- 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码
不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解 GCC 生成 16 位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在 x86 实模式下运行的 ...
- Linux 桌面玩家指南:08. 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- mac 终端 使用 gnu coreutils 工具 ls 颜色显示
mac 终端默认 ls 命令无颜色显示: 1: 使用 ls -G 可以显示基本颜色 2:使用 gnu coreutils 工具 mac 终端 使用 gnu coreutils 工具 ls 颜色显示 以 ...
- Binutils工具集常用工具
GNU为GCC编译器提供了配套的辅助工具集(Binutils)http://www.gnu.org/software/binutils/ 1. addr2line ①将指定地址转换为对应的文件名和行号 ...
- 在windows下使用gnu的工具
mingw Minimalist GNU for Windows http://www.mingw.org/ 想要在Windows使用wget,之前使用的是单独的安装包,现在又想使用bash的命令提示 ...
- binutils工具集之---nm
nm用于列出程序文件中的符号.建立nmtest.c文件: #include<time.h> int global1; ; static int static_global1; ; void ...
随机推荐
- 商户怎样选择商业wifi进行移动营销
互联网移动营销的大潮席卷而来,带给很多其它的商户营销理念上的升级和更新.商业wifi营销成为很多其它的商户选择.以往,人们在咖啡店不过聊聊天喝喝咖啡,如今,人们能够更悠闲的歇息娱乐享受带有wifi的咖 ...
- JRebel_修改class后无法正确调试问题解决【2014-03-12】
原文地址:http://www.cnblogs.com/hbbbs/p/3596179.html 现象 修改了class,编译后,JRebel自动装载到Web容器中.但此时调试这个类会发现无法正常调试 ...
- 关于jsb中js与c++的相互调用
1.js调用c++函数 在c++中声明函数,名为functionCpp,通过spidermonkey中jsapi的JS_DefineFunction绑定一个js函数,名为functionJS,此函数名 ...
- VM参数简介
http://www.cnblogs.com/yuzhaoxin/p/4083612.html block_dump Linux 内核里提供了一个 block_dump 参数用来把 block 读写( ...
- mfc extention dll 與 normal dll 的區別
extention dll 1.指從MFC中繼承過來的DLL,一般要求使用共享MFC DLL進行連接,也要求調用者也使用MFC且使用共享MFC,如此可保證DLL與調用者有相同的MFC庫. 2.在使用資 ...
- C语言中的各种修饰符
C允许同时使用多于一个的修饰符,这就使得可以创建一下各种类型: int board[8][8];//int数组的数组 int **ptr;//指向int的指针的指针 int *risk[10];//具 ...
- shell shift 使用一例
这段代码的作用是: 当输入 ./Export.sh 是将当前目录进行打包,当输入./Export.sh XX1 XX2 XX3 .... XXn 时,如果XXn存在,则依次将存在的目录进行打包,打包文 ...
- Enterprise Library深入解析与灵活应用(2): 通过SqlDependency实现Cache和Database的同步
对于一个真正的企业级的应用来说,Caching肯定是一个不得不考虑的因素,合理.有效地利用Caching对于增强应用的Performance(减少对基于Persistent storage的IO操作) ...
- 升级树莓派archlinux系统到新sd卡
由于之前把树莓派系统安装在4gb的sd卡上,随着系统的更新及安装了一大堆软件包之后,系统提示空间不足了.网上搜索了下,把所有数据迁移到新的sd卡上还是比较简单的. 克隆sd卡: 1,关闭树莓派电源,取 ...
- iOS - UI - UISlider
6.UISlider //滑块 设置高度 UISlider * slider = [[UISlider alloc] initWithFrame:CGRectMake(20, 100, CGRec ...
