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



我正在寻找 unix 命令,以十六进制显示由 cc 编译器编译的任何可执行项的标头部分。我曾经有过这个,现在我不记得了。我只是想看看我编译的任何c程序开头的编译器代码是什么

我知道我可以使用"十六进制转储[文件名]",但这并不能隔离标头部分。希望我已经很好地解释了自己.....

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

若要仅获取文件头,可以使用readelf -hreadelf --fileheader来显示文件头。

要以十六进制形式查看它,您可以使用命令 xxd . 鉴于 elf 标头为 64 字节(在 64 位计算机上(,您可以使用xxd -l 64

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

objdump 的基本语法是:

objdump [options] objfile...

此命令有多种选项可用。

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

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

下面的示例打印特定于对象文件格式的信息。

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

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

objdump -x factorial

相关内容

  • 没有找到相关文章

最新更新