ELF - .symtab 部分

ELF - .symtab section

如何强制 GCC 包含 ELF executables/shared 库的 .symtab 部分?我已经尝试使用 -static-ggdb 但它没有用。

编辑readelf -l 产生以下内容:

 Section to Segment mapping:
 Segment Sections...
  00     
  01     .interp 
  02     .interp .note.ABI-tag .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame 
  03     .init_array .fini_array .dynamic .got .got.plt .data .bss 
  04     .dynamic 
  05     .note.ABI-tag .note.gnu.build-id 
  06     .eh_frame_hdr 
  07     
  08     .init_array .fini_array .dynamic .got 

默认.symtab ,您不需要做任何事情来获得它。

readelf -l yields the following:

该命令用于列出 。由于您对 部分 感兴趣,您应该使用

readelf -WS $binary

相反。

您的二进制文件可能仍然缺少 .symtab 部分。如果是,最常见的原因是 link 行上的 "stray" -s (剥离)选项(或 运行 strip 来自 Makefile).