Welche Funktion in glibc ruft die Hauptfunktion auf

8

Ich versuche zu verstehen, wie Linux ein Programm startet. Ich habe irgendwo gelesen, dass eine Funktion in glibc die Hauptfunktion aufruft. Profiling mit Callgrind und Blick auf die Call-Graphen in Kcachegrind, sehe ich below main , die Main aufruft. Aber ich verstehe das nicht, eine Funktion kann nicht so genannt werden. Also meine Frage ist, welche Funktion in der glibc tatsächlich die Hauptfunktion startet.

    
pythonic 17.05.2012, 20:14
quelle

1 Antwort

11

Nach Valgrinds eigener Hilfe finden Sie diese Erklärung für die Option - show-below-main :

  

Standardmäßig zeigen Stack-Traces für Fehler keine Funktionen, die   erscheinen unter dem Main, weil es meistens uninteressant ist C   Bibliothekszeug und / oder Kauderwelsch. Alternativ, wenn main nicht ist   Im Stack-Trace enthalten Stack-Traces keine Funktionen   unterhalb von main-ähnlichen Funktionen wie glibcs ​​__libc_start_main.   Wenn darüber hinaus main-like-Funktionen in der Ablaufverfolgung vorhanden sind, sind sie   normalisiert als (unter main), um die Ausgabe mehr zu machen   deterministisch.

Daher ist unterhalb von main nicht die Funktion, die main selbst aufruft, sondern __ libc_start_main .

    
Claudio 17.05.2012, 20:24
quelle

Tags und Links