__gmon_start在_start之前执行

时间:2016-02-08 07:53:40

标签: linux x86 elf

当我使用/usr/bin/diff分析gdb时,由于某种原因,我发现__gmon_start__之前正在调用_start。到目前为止,我发现的每份文件都声称_start是一个程序的切入点;并且ELF标题中的入口点字段也指向_start的地址。

为什么diff无法使用_start开始执行;那些信息在哪里举行?

1 个答案:

答案 0 :(得分:2)

  

到目前为止,我发现的每一份文件都声称_start是程序的切入点

对于完全静态的可执行文件,这是真的。

对于动态链接的可执行文件,用户空间执行从加载器的_start符号开始(ld.so),并且通常会有数千条指令和许多系统调用在执行之前执行。加载程序在_start。{/ p>中调用a.out

_start中访问a.out的过程中,可以调用主可执行文件中的函数(这就是您正在观察的内容)。