我正在寻找unix命令以十六进制显示由cc编译器编译的任何可删除的标题部分。 我曾经有过这个,现在我无法记住它。 我只是想看看我编译的任何c程序开头的编译器代码是什么
我知道我可以使用'hexdump [filename]',但这并不能隔离标题部分。 希望我已经很好地解释了自己......
答案 0 :(得分:2)
命令readelf
在大多数Linux系统上都可用,并且能够显示ELF文件的许多部分。您可以使用readelf -H
获取各种选项的简短摘要。
要获取文件标题,您可以使用readelf -h
或readelf --fileheader
来显示文件标题。
要以十六进制查看,您可以使用命令xxd
。鉴于elf头是64字节(在64位机器上),您可以使用xxd -l 64
答案 1 :(得分:0)
Linux中的Objdump命令用于提供有关目标文件的详细信息。这个命令主要由编写程序员的程序员使用,但在调试方面,它仍然是普通程序员的一个非常方便的工具。在本文中,我们将通过一些示例了解如何使用objdump命令。
objdump的基本语法是:
objdump [options] objfile...
此命令有多种选项可供选择。
例如,factorial是我必须编译的c程序。
1.使用显示特定文件头内容的对象格式 -p选项
以下示例打印目标文件格式特定信息。
$ objdump -p factorial
可以使用-x选项检索与目标文件中所有标题相关的信息。
objdump -x factorial