*(.gnu_extab) .gcc_except_table *(.gcc_except_table .gcc_except_table.*) .exception_ranges *(.exception_ranges .exception_ranges*) .tdata *(.tdata .tdata.* .gnu.linkonce.td.*) .tbss *(.tbss .tbss.* .gnu.linkonce
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ra...
6、personality处理及gcc_except_table 注意的是,堆栈的展开是在上层由eh_frame完成的,它不涉及异常处理相关逻辑,事实上eh_frame是和gdb的堆栈信息非常接近的,所以它并不是专门为C++的异常处理程序设定的,异常的特有结构是在except_table中设定的。而这个结构的解析和使用又是由具体的personality函数完成 gcc-4.1.0\...
); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .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_...
3 .gcc_except_table 0000000c 00000000 00000000 000000e8 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .ctors 00000004 00000000 00000000000000f42**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 5 .comment 0000002d 00000000 00000000 000000f8 2**0 ...
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } ...
ELF文件格式如下图所示,位于ELF Header和Section Header Table之间的都是段(Section)。一个典型的ELF文件包含下面几个段: text:已编译程序的指令代码段。 rodata:ro代表read only,即只读数据(譬如常数const)。 data:已初始化的C程序全局变量和静态局部变量。 bss:未初始化的C程序全局变量和静态局部变量。 debug:...
⼆、基础知识 在C++中,异常处理就是使⽤try catch及 throw三个关键字来实现,对于try,在语法分析阶段被消化掉,在汇编代码中,try的位置没有⽽外的代码体现,⽽只是在附加的exception_table中有相应的结构定界体现,表⽰这个结构中的代码是受保护的代码,并且如果它有对应的catch,那么catch处有相应的...
d --keep Keep local labels in symbol table of object file 将本地标签保存在目标文件的符号表中 --regnames none Do not predefine register names 不预定义寄存器名称 --split_ldm Fault long LDM/STM --unsafe Downgrade certain errors to warnings 将某些错误降级为警告 --via <file> Read further ...
gcc_except_table 0000000c 00000000 00000000 000000e8 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .ctors 00000004 00000000 00000000 000000f4 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 5 .comment 0000002d 00000000 00000000 000000f8 2**0 CONTENTS, READONLY 6 .note.GNU-stack 00000000 00000000...