GCC工具集的使用
1. ar工具的使用
静态库用ar工具来制作。ar是一个归档工具,用于建立、修改、提取归档文件(archive)。
2. addr2line工具的使用。
Addr2line 工具是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具。
一般适用于 debug 版本或带有 symbol 信息的库。
在调用 Addr2line 工具时,要使用 -e 选项来指定可执行映像是 test。通过使用 -f 选项,可以告诉工具输出函数名。
addr2line -e ko/vmlinux -a 0xc12348e7 -f
3. nm工具的使用
nm工具用于显示文件中的符号,可以用于各种ELF格式文件
4. strip工具的使用
strip工具用于删除文件中的符号,在资源有限的系统中,可以使用这种方法为程序进行瘦身。
5. readelf工具的使用
readelf工具用于显示ELF格式文件的信息
6. objdump工具的使用
objdump工具用来查看编译后目标文件的组成。
objdump反汇编常用参数
- objdump -d <file(s)>: 将代码段反汇编;
- objdump -S <file(s)>: 将代码段反汇编的同时,将反汇编代码与源代码交替显示,编译时需要使用-g参数,即需要调试信息;
- objdump -C <file(s)>: 将C++符号名逆向解析
- objdump -l <file(s)>: 反汇编代码中插入文件名和行号
- objdump -j section <file(s)>: 仅反汇编指定的section
objdump -S your_module.ko > dump.log
7. strings工具的使用
strings工具用于查看文件中的字符串。
8. objcopy工具的使用
objcopy工具用于对目标文件的内容进行转换。