【发布时间】:2016-07-25 10:07:23
【问题描述】:
我编写了简单的 x86 汇编程序:
$ cat asm.s
.global foo
.section .text
foo:
nop
ret
并用
编译它$ gcc -c -g asm.s -o asm.o
但是当我执行objdump --dwarf asm.o 时,它不会显示任何有关函数foo 的信息。看起来,gcc 没有创建关于foo 的.debug_info 详细信息。
顺便说一句,.symtab 中有一个 foo 的条目。
有什么想法吗?
【问题讨论】:
-
函数没有被调用。也许它被优化为死代码?
-
@JanHenke 谢谢。 asm.s 是编译单元之一。我从其他编译单元中定义的 main() 调用它。除此之外,我没有使用任何 gcc 优化选项。否则它不会出现在符号表中。对吗?
标签: gcc elf objdump dwarf readelf