准备
编译后的目标文件中包含哪些内容:
https://www.jianshu.com/p/4c938ccda653
objdump
用于将机器码生成汇编代码
gcc命令objdump用法
objdump -x obj 以某种分类信息的形式把目标文件的数据组织(被分为几大块)输出 <可查到该文件的所有动态库>
objdump -t obj 输出目标文件的符号表()
objdump -h obj 输出目标文件的所有段概括()
objdump -j .text/.data -S obj 输出指定段的信息,大概就是反汇编源代码把
objdump -S obj C语言与汇编语言同时显示
查看是否调用某个指令集:
objdump -d combin | grep avx
objdump -d 反汇编程序,从机器码生成汇编代码
nm
显示可执行文件的符号表
最好用gcc -g 编译之后
在用nm 编译结果文件,查看文件的符号表,gcc -g会加入更多的符号表信息
gdb就是通过读取符号表来查看程序的调用栈的信息
strings
打印文件中可打印的字符
strings 源代码 就是打印出源代码了
strings 编译结果文件 就是把二进制文件中可以打印的部分文本给打印出来了