Hallo,
ich will jetzt mal den objdump des Spaceage2 Projekt (MIPS CPU in TTL
Gattern) etwas entrümpeln.
Bisher wird einfach objdump -D auf die elf Datei aufgerufen.
Nur besteht dann die disasm Datei aus 90% Debugsymbolen und <pdr> (ka
was das überhaupt ist).
Das macht das Suchen und Öffnen der Datei recht lästig, weils dann aus
bis zu 500k Zeilen besteht.
Selbst ohne -g beim compilen kommt nach der letzten Section ziemlich
viel Schrott (uarts sind nur 2 Variablen):
1 | 0040713c <uarts>:
|
2 | 40713c: ffffff00 0xffffff00
|
3 | 407140: ffffff20 0xffffff20
|
4 | 407144: 00000000 nop
|
5 | 407148: 3ff921fb 0x3ff921fb
|
6 | 40714c: 54442d18 0x54442d18
|
7 | 407150: bff921fb 0xbff921fb
|
8 | 407154: 54442d18 0x54442d18
|
9 | 407158: 7e37e43c 0x7e37e43c
|
10 | <es folgen 200k Zeilen MÜLL>
|
Mit -d guckt er ja nur nach Code in (bekannten) Sections.
Dabei verunfallt er auch bei manchen selbst definierten Linker Sections:
1 | Disassembly of section reset:
|
2 | |
3 | 00000000 <_start>:
|
4 | 0: 3c 1d 00 80 3c 1c 00 40 08 00 31 3b 27 9c 77 8c <...<..@..1;'.w.
|
5 | |
6 | Disassembly of section divu:
|
7 | |
8 | 00000080 <divu_vec>:
|
9 | 80: 0800a461 j 29184 <divsim_unsign>
|
10 | 84: 00000000 nop
|
Also in reset hätt ich auch gerne das Ganze als Instruktionen gesehen.
Zudem möchte ich die Daten sehen, also rodata/data/bss/sdata/sbss.
Zum Anzeigen spezieller Sectons gibts ja -j, also den Aufruf erweitert
um:
-d -j reset -j .rodata -j .data -j .bss -j .sdata -j .sbss
Ja nix is, es sind keine Daten zu sehen und der Resetvektor verunfallt
auch immernoch.
Interessanterweise gehen auch mittendrinne manche Funktionen kaputt (die
liegen alle in .text!):
1 | 00029460 <mulsim_unsigned>:
|
2 | 29460: 23bdffd4 afb00000 afb10004 afb20008 #...............
|
3 | 29470: afb3000c afb40010 afb50014 afa20018 ................
|
4 | 29480: afa3001c afa80020 afbf0024 afa10028 ....... ...$...(
|
5 | 29490: 2402fff8 2403fffc 8c420000 8c630000 $...$....B...c..
|
6 | 294a0: 00009021 00009821 0000a021 3c158000 ...!...!...!<...
|
7 | 294b0: 0062082b 10200004 00000000 .b.+. ......
|
8 | |
9 | 000294bc <V0gross>:
|
10 | 294bc: 00608021 move s0,v1
|
11 | 294c0: 0800a534 j 294d0 <Schritt>
|
12 | 294c4: 00408821 move s1,v0
|
Hat da wer ne Idee wie ich entweder nur angegebene Sections mit Daten
sehe oder Sections ausblenden kann?
Wobei das mit dem Ausblenden schwer wird, wenn einfach Müll hinter den
letzten sinnvollen Zeilen kommt.