Software > Software (16-/32-Bit)

ResourceMaster 4.0 ???

<< < (6/12) > >>

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