原文:objdump & nm & addr2line&readelf

GCC把C语言源文件 .c 编译成汇编语言文件 .s ,汇编器把汇编语言文件翻译成目标文件 .o ,最后由链接器链接所有的目标文件和有关的库生成可执行文件 a.out 。 如打开 g 选项,GCC编译 .c 文件时,把附加的调试信息插进 .s 文件,这些调试信息经汇编器和链接器稍加转换一直传到可执行文件中。这些调试信息包括行号 变量的类型和作用域 函数名字 函数参数和函数的作用域等源文件的特性。 ...

2020-06-15 14:35 0 658 推荐指数:

查看详情

Linux下二进制可执行文件分析 (nm,readelf,objdump 命令使用)

最近在调试一些问题,发现几个命令很实用,记录一下。 一 背景 也许大家都遇到过这种场景,就是有二进制代码,比如深度分析下此文件到底是什么格式的图片等,这篇文章就记录我分析下二进制 ...

Fri Feb 11 06:13:00 CST 2022 0 2719
so 动态库崩溃问题定位(addr2lineobjdump

一、需求分析so 的崩溃并不像 Java 代码那么好定位,我们通常看到的就只是 so 中的一大段崩溃的堆栈信息。那么我们怎么通过这个堆栈信息来定位我们的问题呢? 二、addr2line1. 介绍Addr2line 工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址 ...

Mon Jun 15 20:37:00 CST 2020 0 624
nmreadelf命令的区别

其实问题的本质是对elf格式的理解问题,因为是查看so库的符号表发现的问题。 事情起因是这样的,由于我的一个程序编译的时候出现了undefined reference to “XXX”的错误,需要链接特定的so库,发现用nm [file]找不到“XXX”函数符号,结果用readelf -s ...

Mon Nov 17 18:42:00 CST 2014 0 5852
mac下的readelfobjdump

ELF文件包括: (1)可重定位的目标文件 (2)可执行的目标文件 (3)可被共享的目标文件 可以用file命令来看目标文件是否是ELF文件 在linux下,用readelf来看ELF头部或者其它各section的内容,用objdump来对指定的内容(.text ...

Mon Nov 14 03:07:00 CST 2016 0 10835
addr2line用法

转载地址:https://www.jianshu.com/p/c2e2b8f8ea0d addr2line工具是一个可以将指令的地址和可执行映像转换为文件名、函数名和源代码行数的工具。这在内核执行过程中出现崩溃时,可用于快速定位出出错的位置,进而找出代码的bug。 用法 ...

Fri Jul 02 18:07:00 CST 2021 0 370
常用的分析ELF文件的命令(readelfobjdump及od)

readelf:-h:文件头-S:段表-s:符号表-d: 查看依赖库-p:查看某个段内容,非常重要。如:readelf -p .comment libc.so (通过-p对只读段的查看就可以替代strings命令) objdump:-d:反汇编(objdump我基本只用这一个)-h:段表 ...

Sat Jun 19 00:47:00 CST 2021 0 176
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM