Lea*_*dro 8 c++ windows compiler-construction compilation object-files
我很好奇.obj
文件:我几乎不知道它们是什么(或它们包含什么),所以我用Vim文本编辑器打开它们,我在里面发现的是一个外星人喜欢的语言......
有没有办法了解它们代表什么,它们的内容是什么?另外,它们被用于什么?
谢谢.
当然.
但是每个不同的平台都有不同的对象格式.在Windows上,您可以使用dumpbin之类的工具(随Visual Studio一起提供dumpbin).在Linux上,您可以使用"dumpobj",或者反汇编程序.
这是Linux的一个很好的链接:
http://www.linuxjournal.com/article/1060
PS:objdump还允许你反汇编对象.就像你以前在DOS PC上使用"debug"一样......
该readelf
工具擅长向您显示数据的一些详细信息:
$ readelf -a /usr/bin/readelf
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: Advanced Micro Devices X86-64
...
Run Code Online (Sandbox Code Playgroud)
它检查可执行文件特定部分的一些功能也可以派上用场:
$ readelf -p .rodata /usr/bin/readelf | more
String dump of section '.rodata':
[ 4] R_IA64_IMM14
[ 11] R_IA64_NONE
...
[ 1f58] Personality routine:
[ 1f70] __gcc_personality_v0
[ 1f85] __gxx_personality_v0
[ 1f9a] __gcj_personality_v0
[ 1faf] __gnu_objc_personality_v0
...
Run Code Online (Sandbox Code Playgroud)
实际上反汇编代码有点困难;-g
如果您使用调试符号编译代码,则可以使用它readelf --debug-dump
来读取程序源、类型信息等。
归档时间: |
|
查看次数: |
9989 次 |
最近记录: |