COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=x86-64' /usr/libexec/gcc/x86_64-redhat-linux/4.8.5/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu [...]/../../../../lib64/crtn.o [testdir]# 运行此命令后,你应该看到一个名为a.out的可执行文件: ...
参见PR12570 .plt has no associated .eh_frame/.debug_frame。 PC在PLT entry中时,如果链接器不合成.eh_frame信息,unwinder可能会无法正确unwind。 在i386和x86-64上,lazy binding状态下,一个PLT entry的首次调用会执行push指令。在ESP/RSP改变后,如果PLT entry没有.eh_frame提供的unwind信息,unwinder可能会无法...
7.eh_frame0000005800000000000000000000000000000000000000f82**3 CONTENTS, ALLOC, LOAD,RELOC,READONLY,DATA size -A simple_section.o simple_section.o : sectionsize addr .text950 .data80 .bss40 .rodata40 .comment440 .note.GNU-stack00 .note.gnu.property320 .eh_frame880 Total275 .code代码段 从反...
.rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab :...
* the .eh_frame section from the executable. */ .eh_frame : { *(.gcc_except_table) __EH_FRAME_BEGIN__ = . ; KEEP (*(.eh_frame)) __EH_FRAME_END__ = . ; . = ALIGN(8); } > pfls0 /* * Constructors and destructors. ...
接着调用编译器gcc进行编译,输入上一步的.i文件,输出.s汇编文件。 然后调用汇编器as将.s为后缀的汇编语言文件处理生成以.o为后缀的目标文件。 当所有的目标文件都生成之后,调用链接器ld来进行链接生成可执行文件或库文件。这一节我们先看生成可执行文件,下一节再看如何生成库文件。
**0ALLOC3.rodata0000000c00000000000000000000000000000000000000532**0CONTENTS,ALLOC,LOAD,READONLY,DATA4.comment0000002a000000000000000000000000000000000000005f2**0CONTENTS,READONLY5.note.GNU-stack0000000000000000000000000000000000000000000000892**0CONTENTS,READONLY6.eh_frame0000003800000000000000000000000000000000000000902**3...
= ALIGN(4); *(.text) /* .text sections (code) */ *(.text*) /* .text* sections (code) */ *(.glue_7) /* glue arm to thumb code */ *(.glue_7t) /* glue thumb to arm code */ *(.eh_frame)...
= ALIGN(4); *(.text) /* .text sections (code) */ *(.text*) /* .text* sections (code) */ *(.glue_7) /* glue arm to thumb code */ *(.glue_7t) /* glue thumb to arm code */ *(.eh_frame) KEEP (*(.init)) KEEP (*(.fini...
" asynchronous-unwind-tables create eh_frame section [on]\n" 119121 " test-coverage create code coverage code\n" 120122 "-m... target specific options:\n" 121123 " ms-bitfields use MSVC bitfield layout\n" +2 Original file line numberDiff line numberDiff line change ...