介绍几个在查看elf文件动态链接库会用到的几个命令:

ldd:用于打印程序或者库文件所依赖的共享库列表。

ldd命令并不是可执行程序,而只是shell脚本。


readelf: 命令是一个有很多特性的实用程序,它让您能够解析和读取 ELF 对象


objdump:它展示了关于对象文件的信息;elf文件的各个section段


nm:它列出来自对象文件(包括调试信息)的符号。

第一列:当前符号的地址

第二列:当前符号的类型(关于类型的说明,感兴趣的朋友可以man nm详阅)

第三列:当前符号的名称

-C 就可以把这些难以识别的符号,转换成便于我们阅读的符号.

作用:

(1)判断指定程序中有没有定义指定的符号 (比较常用的方式:nm -C proc | grep symbol)
(2)解决程序编译时undefined reference的错误,以及mutiple definition的错误
(3)查看某个符号的地址,以及在进程空间的大概位置(bss, data, text区,具体可以通过第二列的类型来判断)

Logo

更多推荐