GNU Binutils使用简介
文章目录
本文主要记录GNU Binutils的日常使用。
objdump
|
|
可以反汇编二进制程序,结合错误信息定位到问题代码的具体位置。
addr2line
显示地址所在的函数和行号。
动态库的话,先要查看动态库加载地址,把出错地址换算为相对地址后再调用addr2line。
|
|
nm
显示二进制程序的符号信息。
没有符号信息可能是没有带 -g
选项编译或者被下文提到的 strip
去除了。
|
|
readelf
显示elf格式文件的信息。
|
|
strip
去掉二进制程序中的符号表。
可以减小二进制程序的大小,但是同时增加了调试的难度(出问题后要带 -g
选项重编对应版本)。
ld
链接器,编译的时候就会自动调用。嵌入式开发偶尔会手动调用。
日常使用主要是指定链接选项。
通过 -Wl
可以指定逗号分隔的链接选项。
|
|
strings
输出二进制程序(库)中可打印的字符串。
比如说查看当前标准c++库兼容的版本:
|
|