Hallo, ich versuche in einem größeren Programm ein Memory-Leak zu finden. Via diverser Tools wird mir die Funktions-Adresse angezeigt wo sich dieses Leak befinden könnte - jedoch komme ich jetzt von der Funktions-Adresse nicht auf den Funktions-Namen. Gibt es Compiler-Optionen, damit ich evtl. während des Build-Vorgangs erfahre an welchem Offset welche Funktion sitzt - oder gibt es andere Möglichkeiten? danke & gruß
Auch wenn hier weder der Processor noch der Compiler angegeben sind: Im MAP File (Textoutput des Linkers) steht meistens, welche Funktion auf welche Adresse gelinkt ist. Die Erzeugung des Mapfiles wird meistens durch eine Linker-Option ein- bzw. ausgeschaltet. Bernhard
Sofern du eine .ELF Datei mit Symbolen hast, hilft dir
1 | readelf -s myfile.elf |
Enthält dann viele Einträge der Form
1 | 492: a0007184 8 FUNC GLOBAL DEFAULT 2 read |
wobei hier a0007184 die Adresse der Funktion "read" ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.