UNIX:C:cc编译器。命令行:如何在屏幕上显示二进制文件标题

时间:2017-06-12 00:31:10

标签: c unix header command

我正在寻找unix命令以十六进制显示由cc编译器编译的任何可删除的标题部分。 我曾经有过这个,现在我无法记住它。 我只是想看看我编译的任何c程序开头的编译器代码是什么

我知道我可以使用'hexdump [filename]',但这并不能隔离标题部分。 希望我已经很好地解释了自己......

2 个答案:

答案 0 :(得分:2)

命令readelf在大多数Linux系统上都可用,并且能够显示ELF文件的许多部分。您可以使用readelf -H获取各种选项的简短摘要。

要获取文件标题,您可以使用readelf -hreadelf --fileheader来显示文件标题。

要以十六进制查看,您可以使用命令xxd。鉴于elf头是64字节(在64位机器上),您可以使用xxd -l 64

答案 1 :(得分:0)

Linux中的Objdump命令用于提供有关目标文件的详细信息。这个命令主要由编写程序员的程序员使用,但在调试方面,它仍然是普通程序员的一个非常方便的工具。在本文中,我们将通过一些示例了解如何使用objdump命令。

objdump的基本语法是:

objdump [options] objfile...

此命令有多种选项可供选择。

例如,factorial是我必须编译的c程序。

1.使用显示特定文件头内容的对象格式  -p选项

以下示例打印目标文件格式特定信息。

$ objdump -p factorial
  1. 使用-x选项
  2. 显示所有标头的内容

    可以使用-x选项检索与目标文件中所有标题相关的信息。

    objdump -x factorial