从 GCC 中的 C/C 源访问汇编器输出
要分析编译过程,提取发出的汇编代码通常很有用。使用 GCC 可以通过两种方式实现这一点:
使用 -S 选项:
通过在 gcc 命令中添加 -S 选项,将调用预处理器,并且将发生初始编译。然而,该过程将在组装阶段之前停止。此部分编译输出通常名为 file_name.s,包含与原始 C/C 源代码相对应的汇编代码。
使用 objdump:
如果仅对象文件可用时,可以使用 objdump 实用程序提取汇编代码。通过添加 --disassemble (-d) 选项,objdump 将生成目标文件的反汇编结果。如果使用调试信息(使用 -g)执行编译,则源代码行将与反汇编交错,以提高可读性。
示例:
gcc -S source_file.c objdump -S --disassemble object_file.o > assembly_output.txt
gcc 的 -S 选项将生成一个名为 source_file.s 的汇编文件。 objdump 命令将创建一个名为 assembly_output.txt 的文本文件,其中包含目标文件的反汇编,并包含源代码行(如果可用)。
用于自定义输出的其他 objdump 选项包括:
以上是如何使用 GCC 访问 C/C 源生成的汇编代码?的详细内容。更多信息请关注PHP中文网其他相关文章!