Software > Software (16-/32-Bit)
ResourceMaster 4.0 ???
mfro:
--- Zitat von: ardi am Sa 22.02.2014, 17:23:17 ---Hi,
@coldfire
ich habe mal einfach ein paar printf's eingefügt.
Die werden wahrscheinlich aufs Desktop geschrieben. Unter MagiC kann ich in .tos umbenennen dann öffnet sich ne Console.
Wenn nicht alles schief läuft, sollten ein paar Ausgaben kommen bevor rsm crasht.
ardi
--- Ende Zitat ---
Hallo Armin,
zu einem Ausschrieb kommt es leider nicht (weder direkt auf dem Schirm noch auf der Konsole, die ich vorher aufgemacht habe).
Aber ich bin (ein bißchen) schlauer: Basepageadresse: 0x1103320, Line-F-Exception bei 0x49a7d0a. User-Stack bei 0x23f92c4.
Mit dem FireTOS-Debugger kann man sehen, daß bei 49a7d0a nur 0xff's stehen.
Eine Stackrückverfolgung hat mich dahin geführt:
--- Code: ---02503C66: 4E56 0000 link.w a6,#0
02503C6A: 4AB9 0253 B2F4 tst.l 0x253b2f4.l
02503C70: 6704 beq.b 0x2503c76
02503C72: 4E5E unlk a6
02503C74: 4E75 rts
02503C76: 4E5E unlk a6
02503C78: A379 0253 B2F4 mov3q #0x1,0x253b2f4.l
02503C7E: 60FF 024A 408A bra.l 0x49a7d0a <=== hier kracht's
02503C84: 4E56 FFE8 link.w a6,#-0x18
02503C88: 700A moveq #0xa,d0
02503C8A: 48D7 3C0C movem.l d2-d3/a2-a5,(sp)
02503C8E: 266E 0008 movea.l 0x8(a6),a3
02503C92: 4282 clr.l d2
02503C94: 246E 000C movea.l 0xc(a6),a2
02503C98: 2A6B 000C movea.l 0xc(a3),a5
02503C9C: 262B 0010 move.l 0x10(a3),d3
--- Ende Code ---
Das 0x49a7d0a scheint mir ein Überschreiber zu sein, 60FF 024A 408A gehört da nicht hin (im disassemblierten Programm selbst steht an der Stelle "60ff ffff ff8a", also eigentlich ein Rücksprung in einer Schleife).
Vielleicht hilft dir das ja.
Gruß,
Markus
ardi:
--- Zitat von: mfro am So 23.02.2014, 09:45:32 ---Das 0x49a7d0a scheint mir ein Überschreiber zu sein, 60FF 024A 408A gehört da nicht hin (im disassemblierten Programm selbst steht an der Stelle "60ff ffff ff8a", also eigentlich ein Rücksprung in einer Schleife).
--- Ende Zitat ---
Danke für deine Mühe. Aber ich stehe ein bisschen auf'n Schauch.
- Basepage an 0x1103320
- bedeutet Programmstart an 0x1103420 (+0x100)
- "Überschreibung" an 0x02503C7E
- bedeutet Offset=(0x02503C7E - 0x1103420)=0x140085E
- und 0x140085E ist weit außerhalb von RSM
--- Zitat von: mfro am So 23.02.2014, 09:45:32 ---Aber ich bin (ein bißchen) schlauer
--- Ende Zitat ---
Ich anscheinend nicht ;)
woher hast du, das an der Stelle 60ff ffff ff8a stehen muß. Ich brauche die relative Position zum Programmstart.
ardi
mfro:
--- Zitat von: ardi am So 23.02.2014, 10:32:01 ---Ich anscheinend nicht ;)
woher hast du, das an der Stelle 60ff ffff ff8a stehen muß. Ich brauche die relative Position zum Programmstart.
ardi
--- Ende Zitat ---
Müsste 0x5fb9a (relativ zum Start der Basepage) sein. Ob man dem FireTOS Debugger bezüglich der Basepageaddresse glauben darf, weiß ich nicht, ich habe den gerade das erste Mal benutzt.
Die Absturzstelle scheint mir allerdings eindeutig zu sein.
Ich bin folgendermaßen vorgegangen (ich habe das gerade nochmal nachvollzogen, insofern kann es sein, daß sich die Adressen zu oben unterscheiden):
Crash PC -> 0x4947d0a
User Stack -> 0x251d2c4
Dort steht die Rücksprungadresse 0x24741d6:
--- Code: ---024741D0: 4EB9 024D 3C66 jsr 0x24d3c66.l
024741D6: 41EE 0008 lea 0x8(a6),a0
--- Ende Code ---
Also das Unterprogramm ab 0x24d3c66 angeschaut:
--- Code: ---> dis 24d3c66
024D3C66: 4E56 0000 link.w a6,#0
024D3C6A: 4AB9 0250 B2F4 tst.l 0x250b2f4.l
024D3C70: 6704 beq.b 0x24d3c76
024D3C72: 4E5E unlk a6
024D3C74: 4E75 rts
024D3C76: 4E5E unlk a6
024D3C78: A379 0250 B2F4 mov3q #0x1,0x250b2f4.l
024D3C7E: 60FF 0247 408A bra.l 0x4947d0a
024D3C84: 4E56 FFE8 link.w a6,#-0x18
024D3C88: 700A moveq #0xa,d0
024D3C8A: 48D7 3C0C movem.l d2-d3/a2-a5,(sp)
024D3C8E: 266E 0008 movea.l 0x8(a6),a3
024D3C92: 4282 clr.l d2
024D3C94: 246E 000C movea.l 0xc(a6),a2
024D3C98: 2A6B 000C movea.l 0xc(a3),a5
024D3C9C: 262B 0010 move.l 0x10(a3),d3
--- Ende Code ---
und da ist der Sprung nach 0x4947d0a, der den Crash auslöst. Paßt für mich zusammen.
Anschließend habe ich das Binary disassembliert und nach der selben Bytefolge gesucht. Die kommt nur einmal vor und das Drumrum ist eindeutig:
--- Code: --- 5fb82: 4e56 0000 linkw %fp,#0
5fb86: 4ab9 0009 71f4 tstl 0x971f4
5fb8c: 6704 beqs 0x5fb92
5fb8e: 4e5e unlk %fp
5fb90: 4e75 rts
5fb92: 4e5e unlk %fp
5fb94: a379 0009 71f4 mov3ql #1,0x971f4
5fb9a: 60ff ffff ff8a bral 0x5fb26
5fba0: 4e56 ffe8 linkw %fp,#-24
5fba4: 700a moveq #10,%d0
5fba6: 48d7 3c0c moveml %d2-%d3/%a2-%a5,%sp@
5fbaa: 266e 0008 moveal %fp@(8),%a3
5fbae: 4282 clrl %d2
5fbb0: 246e 000c moveal %fp@(12),%a2
5fbb4: 2a6b 000c moveal %a3@(12),%a5
--- Ende Code ---
Paßt für mich (außer der möglicherweise falschen Basepageadresse?) zusammen. Ist es so klarer?
Gruß,
Markus
ardi:
Hi Markus,
probiere bitte mal die angehängte Version.
Armin
mfro:
--- Zitat von: ardi am So 23.02.2014, 12:00:26 ---Hi Markus,
probiere bitte mal die angehängte Version.
Armin
--- Ende Zitat ---
Leider kein (wesentlicher) Unterschied. Die Adresse hat sich ein wenig verschoben (0x46afd0a), ansonsten alles beim alten.
Hast Du meine PN gelesen?
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln