Próbuję zrozumieć, jak Linux uruchamia program. Czytałem gdzieś, że niektóre funkcje w glibc wywołują główną funkcję. Profilowanie za pomocą callgrind i przeglądanie wywołań w Kcachegrind, widzę below main
, który dzwoni do głównego. Ale nie rozumiem tego, funkcja nie może być nazwana tak. Moje pytanie brzmi więc, która funkcja w glibc faktycznie rozpoczyna główną funkcję.Która funkcja w glibc wywołuje główną funkcję?
8
A
Odpowiedz
11
następujących Valgrind własna pomoc znajdziesz to wyjaśnienie dla opcji --show-poniżej-main:
Domyślnie stos ślady za błędy nie wykazują żadnych funkcji, które pojawiają się pod głównym ponieważ przez większość czasu jest nieinteresujący C rzeczy biblioteki i/lub gobbledygook. Alternatywnie, jeśli główny nie jest obecny w zapisie stosu, ślady stosu nie będą wyświetlały żadnych funkcji podrzędnych, takich jak funkcje __libc_start_main glibc. Ponadto, jeśli w śledzeniu występują funkcje główne, są one znormalizowane jako (poniżej głównego), aby wynik był bardziej deterministyczny.
Jako takie, poniżej głównego nie jest funkcja, która nazywa się główny, ale __libc_start_main.
Powiązane problemy
- 1. Jak napisać funkcję, która wywołuje funkcję, która wywołuje data.table?
- 2. Kto wywołuje główną funkcję w języku Java?
- 3. Jak przetestować funkcję, która wywołuje inną, która zwraca obietnicę?
- 4. C++: Implementuj niestandardową funkcję główną
- 5. Co to jest funkcja, która nie wywołuje żadnych argumentów?
- 6. Funkcja zwracania funkcji, która zwraca funkcję, itp.
- 7. R: określanie łańcucha jako argumentu funkcji, która wywołuje inną funkcję
- 8. jednostka testująca funkcję Pythona, która wywołuje podproces vim
- 9. Czy istnieje funkcja skrótu glibc?
- 10. Sprawdź, czy funkcja wywołuje inną funkcję z Mocha
- 11. ES6 natychmiast wywołuje funkcję strzałki
- 12. Kątowe nieoczekiwane zachowanie. Funkcja Self-wykonanie wywołuje funkcję zakres
- 13. Czy .NET JIT będzie wstawiać małą funkcję, która wywołuje inną małą funkcję?
- 14. Jak napisać funkcję, która zwraca inną funkcję?
- 15. Safe Lua wywołuje funkcję zarejestrowaną w C++
- 16. Węzeł JS wywołuje funkcję "lokalną" w module.exports
- 17. C# - LINQ Select() wywołuje funkcję dwa razy
- 18. scipy.optimize.leastsq wywołuje funkcję celu za pomocą NaN
- 19. Jak przekazać główną funkcję * argv [] do funkcji?
- 20. Co wywołuje funkcja Windows Do Before Main()?
- 21. AWS Funkcja Lambda nigdy nie wywołuje oddzwonienia
- 22. Skrypt powłoki wywołuje funkcję ze zmienną?
- 23. Wywołuje funkcję bash po wpisaniu do katalogu
- 24. Kod testowania jednostki, który wywołuje funkcję VirtualPathUtility.ToAbsolute
- 25. Funkcja, która zwraca nazwę klasy w D
- 26. Funkcja glibc do pobrania bieżącej nazwy pliku wykonywalnego?
- 27. C++ 11 Funkcja szablonu, która przyjmuje funkcję std ::, która zależy od parametrów szablonu
- 28. "Która" równoważna funkcja w Pythonie
- 29. Czy mogę powiązać funkcję, która przyjmuje domyślne argumenty, a następnie wywołuje ją?
- 30. Jak stwierdzić, że funkcja nie wywołuje wyjątku
__libc_start_main() Myślę, http://linuxgazette.net/issue84/hawk.html – user1399238
[ '__libc_start_main'] (http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic /LSB-Core-generic/baselib---libc-start-main-.html) zdefiniowane w Linux Standard Base. – birryree
Sprawdź również następujące pytania: http://stackoverflow.com/questions/8668913/elf-binary-compiled-by-gcc-what-happens-from-entry-point-to-main i http://stackoverflow.com/ pytania/524826/linux-is-it-to-to-write-a-working-program-to-nie-polegaj-na-libc – birryree