Próbuję sprawdzić stan stosu C/C++ z poziomu gdb na Linux amd64, czy jest dobry sposób na zrobienie tego?Badanie statystyk pamięci sterty C/C++ w gdb
Jedna z metod, którą próbowałem, to "call mallinfo()", ale niestety nie mogę wtedy wyodrębnić wartości, które chcę, ponieważ gdb nie radzi sobie poprawnie z wartością zwracaną.
Nie jestem w stanie napisać funkcji do binarnej dla procesu, do którego jestem przywiązany, więc mogę po prostu zaimplementować moją własną funkcję, aby wyodrębnić wartości przez wywołanie mallinfo() w moim własnym kodzie droga. Czy jest jakiś sprytny trik, który pozwoli mi to robić w locie?
Inną opcją może być zlokalizowanie sterty i przejście przez nagłówki malloc/wolną listę; Byłbym wdzięczny za wszelkie wskazówki, od których mógłbym zacząć szukać lokalizacji i układu tych elementów.
Próbowałem Google'a i przeczytałem problem przez około 2 godziny. Nauczyłem się fascynujących rzeczy, ale wciąż nie znalazłem tego, czego potrzebuję.
Co należy wiedzieć o stanie? Jakie statystyki potrzebujesz znać? –
Rozmiar sterty, ilość używana i kwota za darmo to dobry początek –
Co to jest GDB nie działa prawidłowo? – leedm777