ELF - .symtab 部分

Tre*_*rey 3 x86 elf

如何强制 GCC 包含 ELF 可执行文件/共享库的 .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 
Run Code Online (Sandbox Code Playgroud)

Emp*_*ian 5

默认情况下.symtab 包括在内,你不需要做任何事情来得到它。

readelf -l 产生以下结果:

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

readelf -WS $binary
Run Code Online (Sandbox Code Playgroud)

反而。

您的二进制文件可能仍然缺少该.symtab部分。如果是,最常见的原因是-s链接行上的“stray” (strip)选项(或strip在来自 a 的二进制文件上运行Makefile)。