glibc中的哪个函数调用main函数

pyt*_*nic 8 c linux gcc glibc

我试图了解Linux如何启动程序.我在某处读到glibc中的某些函数调用main函数.使用callgrind进行分析并查看Kcachegrind中的调用图,我看到below main哪些调用main.但是我不明白这个,一个函数不能这样命名.所以我的问题是glibc中的哪个函数实际上启动了main函数.

Cla*_*dio 11

在valgrind自己的帮助下,您将找到选项--show-below-main的解释:

默认情况下,错误的堆栈跟踪不显示在main下面显示的任何函数,因为大多数时候它是无趣的C库内容和/或gobbledygook.或者,如果堆栈跟踪中不存在main,则堆栈跟踪将不会在类似主函数(如glibc的__libc_start_main)下显示任何函数.此外,如果跟踪中存在类似主函数,则将它们标准化为(在主下方),以使输出更具确定性.

因此,main下面不是调用main本身的函数,而是__libc_start_main.