2017-08-03 2 views
0

Ich schreibe ein Skript, das das Gedächtnis von .elf analysieren soll. Genauer gesagt: Code-Größe und Datengröße. Das Dienstprogramm GNU-Größe listet die Abschnittsgrößen auf.Wie überprüft man, ob ein Abschnitt Code oder Daten (.elf) ist?

>mips-mti-elf-size.exe -A -x -t file.elf 
section        size     addr         
.sec(1) 
.sec(2) 
. 
.sec(i) 
.sec(n) 
Total        0x----- 

Ich kann auch Gesamttextgröße oder gesamte .data Größe überprüfen. Gibt es eine Möglichkeit, für jede Sekunde zu entscheiden, ob es sich um einen Code oder um Daten handelt?

+0

Ich kann nur einen '.text' Abschnitt in Ihrer Beispielausgabe sehen. Funktioniert meine Antwort nicht für dich? Wenn nicht, bitte klären, danke. –

+0

Sorry, aber ich kann nicht verstehen, was genau Sie wollen, wenn ** nicht ** nur die Zeilen gedruckt wird, die mit '.text',' .data' und '.bss' beginnen, wie Ihre Frage vermuten lässt. Wenn Sie etwas anderes möchten, bearbeiten Sie Ihre Frage, zeigen Sie die genaue Ausgabe an und machen Sie deutlich, an welchen Zeilen/Teilen Sie interessiert sind. –

Antwort

0

Verwenden Mips-mti-elf-readelf.exe:

mips-mti-elf-readelf.exe -S file.elf 

Dies wird zurück:

[Nr] Name    Type   Addr  Off Size ES Flg Lk Inf Al 
    [ 0]     NULL   00000000 000000 000000 00  0 0 0 
    [ 1] .secName       9014d000 00d000 000480 00 AX 0 0 4096 
    ... 

Verwendung Flg: wenn X up ist es Code ist.

Verwandte Themen