首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >__gmon_start在_start之前执行

__gmon_start在_start之前执行
EN

Stack Overflow用户
提问于 2016-02-08 07:53:40
回答 1查看 834关注 0票数 3

当我使用/usr/bin/diff分析gdb时,我发现由于某种原因,__gmon_start___start之前被调用。到目前为止,我找到的每个文档都声称_start是程序的入口点;ELF头中的入口点字段也指向_start的地址。

为什么diff不开始使用_start执行;以及这些信息保存在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-14 20:20:50

到目前为止,我找到的每一份文档都声称_start是程序的入口点。

对于完全静态的可执行文件,这是正确的.

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

在以_start实现a.out的过程中,可以调用主可执行文件中的函数(这就是您所观察到的)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35264707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档