...
其实问题的本质是对elf格式的理解问题,因为是查看so库的符号表发现的问题。 事情起因是这样的,由于我的一个程序编译的时候出现了undefined reference to XXX 的错误,需要链接特定的so库,发现用nm file 找不到 XXX 函数符号,结果用readelf s file 就找到了。其实问题是我对so理解的不深刻。 一般来说,对于一个so库有两个符号表,一个是 正常的 在.s ...
2014-11-17 10:42 0 5852 推荐指数:
...
最近在调试一些问题,发现几个命令很实用,记录一下。 一 背景 也许大家都遇到过这种场景,就是有二进制代码,比如深度分析下此文件到底是什么格式的图片等,这篇文章就记录我分析下二进制可执行文件的过程,已经自己读写二进制文件的一些坑。分析的二进制执行文件为linux下的可执行文件 ...
GCC把C语言源文件('.c')编译成汇编语言文件('.s'),汇编器把汇编语言文件翻译成目标文件('.o'),最后由链接器链接所有的目标文件和有关的库生成可执行文件('a.out')。 如打 ...
原文链接 编译 nm:列出目标文件中的符号。 objdump:显示目标文件中的详细信息。 readelf:显示关于 ELF 目标文件的信息。 参考 清单 1. hw.c 程序 #include <stdio.h> ...
Date: 2018.7.18 1、参考: https://www.jianshu.com/p/863b279c941e https://sourceware.org/binutils/docs/binutils/nm.html 2、Linux中目标文件解析的三个命令 ...
前言 nm是name的缩写,它显示指定文件中的符号信息,文件可以是对象文件、可执行文件或对象文件库。如果文件中没有包含符号信息,nm报告该情况,单不把他解释为出错。nm缺省情况下报告十进制符号表示法下的数字值。 选项 -a/--debug-syms:显示所有符号,包括 ...
nm在linux中列出目标文件的符号清单,常用来查看动态链接库中的函数 nm支持的选项如下 -a 按照man手册,仅列出调试信息,实际上却是调试信息+正常信息 -A 增加一列显示目标文件,没有实际意义 -C 将低级符号信息编码成便于查看的用户信息 ...
转:http://blog.csdn.net/stpeace/article/details/47089585 一般来说, 搞linux开发的人, 才会用到nm命令, 非开发的人, 应该用不到。 虽然nm很简单, 但是还是有必要写几句, 聊表心意。 nm不是ni ma ...