Ich versuche, den Zustand des C/C++ - Heap von innerhalb Gdb auf Linux AMD64 zu untersuchen, gibt es eine nette Möglichkeit, dies zu tun?Untersuchung von C/C++ Heapspeicher-Statistiken in gdb
Ein Ansatz, den ich ausprobiert habe ist "Call Mallinfo()" aber leider kann ich dann nicht die Werte extrahieren, da gdb nicht richtig mit dem Rückgabewert befasst.
Ich bin nicht leicht in der Lage, eine Funktion zu schreiben in die Binärdatei für den Prozess, den ich angehängt bin zu schreiben, so kann ich einfach meine eigene Funktion zum Extrahieren der Werte durch Aufruf von mallinfo() in meinem eigenen Code dies implementieren Weg. Gibt es vielleicht einen cleveren Trick, der es mir ermöglicht, dies während der Fahrt zu tun?
Eine andere Option könnte sein, den Heap zu lokalisieren und die malloc Header/Freelist zu durchlaufen; Ich würde mich über Hinweise freuen, wo ich anfangen könnte, den Standort und das Layout zu finden.
Ich habe versucht, Google und lesen Sie das Problem für etwa 2 Stunden und ich habe einige faszinierende Sachen gelernt, aber immer noch nicht gefunden, was ich brauche.
Was müssen Sie über den Staat wissen? Welche Art von Statistiken müssen Sie wissen? –
Größe des Heaps, verwendete Menge und Menge frei ist ein guter Anfang –
Was macht gdb nicht richtig? – leedm777