Größe von Programmteilen

Gast #1798515
Lesenswert?

Servus zusammen

Ich habe bei den Peripheral Tests, eines Systems mit Xilinx MicroBlaze, 
herumgebastelt und nach meinen Wünschen verbogen. Über "Generate Linker 
Script" kann ich mir die Größe der diversen Data/Code Sections (.text, 
.data, .bss ...) ansehen. Jetzt möchte ich wissen welche Programmteile 
(welche Funktion oder welche Variable) wieviel in den jeweiligen 
Sections belegen. Zumal ich auch noch nicht so sicher weiss was er denn 
nun alles aus den .h files mit rein packt in das Programm.

Oder geht es nur rekursiv. Ich schreibe mir den Speicherbedarf vorher 
auf, kommentiere eine Funktion aus. Vergleiche den Speicherbedarf unter 
Generate Linker Script nachher.

Gruß Flo
Gast #1798548
Lesenswert?

floGzmo schrieb:
> Zumal ich auch noch nicht so sicher weiss was er denn
> nun alles aus den .h files mit rein packt in das Programm.

Aus .h-Files sollte eigentlich fast gar nichts im Programm landen, was 
Speicher verbraucht. So etwas hat da drin, bis auf wenige Ausnahmen, 
nichts zu suchen.

Die Info, die du suchst, steht üblicherweise in einem Map-File. Wie du 
das erzeugst, sollte die Doku zu deinem System verraten. Falls das ein 
gcc ist, lautet die option -Map.

Oliver
Gast #1799859
Lesenswert?

Vielen Dank für die Antworten.

Die Entwicklungsumgebung bei Xilinx nennt sich SDK und basiert auf 
Eclipse und hat damit den gcc. Die Option -Map hab ich dabei nicht 
gefunden. Es ist zwar die Rede von "mb-gcc -Wl,-M ...
Signal the linker to produce a map file with
the -M option.", jedoch hab ich das nicht zum laufen gebracht.

Die Sache mit mb-nm --print-size... hat funktioniert. Dort konnte ich 
nun die Größen von Funktionen und Daten des .elf Files sehen.

Gibt es noch die Möglichkeit zu sehen in welche Section die jeweilige 
Funktion bzw. die Daten geschrieben werden?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren