编译C程序后,您将获得一个.o文件。我知道它是一个由' 0&1'组成的文件,如果在成功编译程序后形成的话。 但我希望看到文件中的内容!
答案 0 :(得分:8)
你在这里有几个选择。
首先(也是最简单的)是使用解码文件的东西来显示它是什么。 linux上的objdump就是这样做的。
gcc -c test.c
给你test.o
objdump -D test.o
将对文件进行解码,并在标准输出上显示其中的内容(因此将其管理为更少或类似) Objdump输出显示未链接的目标文件。地址无效,必须由链接器修复 格式是 首先是一个行号 然后是一些cpu指令的字节数,这些以十六进制显示。例如,14表示00010100 接下来是这些byes代表的指令
0: 14 00 adc $0x0,%al
所以上面我们有函数的第0行 - 它是unlinked) 14 00 - 这些是字节 它们意味着将进位0加到al寄存器中,将结果存储在al
中另一种选择是使用十六进制编辑器并尝试在没有任何帮助的情况下计算出14 00的含义。
祝你好运。答案 1 :(得分:0)
只需使用十六进制编辑器即可。它允许您在几秒内查找数千兆字节文件中的数据模式。它很强大。支持跨文件的正则表达式搜索。它很方便。允许您只需单击一下即可制作文件补丁。这很聪明。它很灵活。这很有效率。
答案 2 :(得分:0)
您可以在终端上使用hexdump
命令来显示内容。
语法: $ hexdump <filename>.o
它将以hexadecimal
的形式向您显示内容。