PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gesamten Speicherverbrauch ermitteln



happy
22.02.2005, 10:30
Hallo!
Ich möchte für verschiedene Kryptoprogramme auf einem Atmel atmega128 den Speicherverbrauch ermitteln, d.h. den *gesamten* Verbrauch. Klar, was mit malloc/calloc allokiert wird kann man einfach mit einem counter zählen, und die deklarierten Standardtyp-Variablen bekommt man mittels avr-objdump. Nun aber mein Problem: Ich benötige wirklich den gesamten Speicherbedarf, also den gesamten Stack incl. aller übergebenen Zeiger usw. - Hat vielleicht irgendwer eine Idee?

Gruß,
Holger.

Kjion
22.02.2005, 13:23
Das geht leider nicht. Wie soll den Compiler zum Beispiel den Speicherverbrauch rekursiver Funktionen ermitteln ?? Es ist immer nur eine ungefähre Angabe möglich. Wie du schon geschrieben hast ist das für globale Variablen usw. leicht möglich, wieviel Stack verschachtelten Unterprogrammaufrufe belegen musst du selbst wissen und den Stack danach großzügig auslegen...

MfG Kjion

happy
23.02.2005, 15:28
Heureka, ich glaub' ich habe da doch was gefunden! Mit SP kann man auf den StackPointer zugreifen. Verfolge ich diesen während meines Programmes kann ich dem Stack beim wachsen zuschauen.

PicNick
23.02.2005, 16:04
Na ja, das hätten wir dir auch sagen können. Aber das heißt, du mußt in jeder gerufenen Funktion (inclusive c-library) einen check einbauen.
das is'n bißchen mühsam.
Hoffnungsschimmer: vielleicht läßt sich im Debug-Mode was machen.