NKC Forum
Registrieren | FAQ | Suche | Wer ist online? | Mitgliederliste | Heutige Beiträge | Kalender | Einloggen



Autor Thema: Breakpoint mit GP7
smed
Stammgast
**
ID # 114


  Erstellt am 17. November 2018 08:15 (#1)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Leute,
wie kann ich es realisieren aus meinem Program heraus in den GP Einzelschrittmodus zu wechseln? Also gewissermassen einen Breakpoint setzen von dem aus ich dann mit <ENTER> das Program schrittweise weiter ausfuehren kann.


START:
MOVEQ #0,D0
MOVEQ #1,D1
MOVEQ #2,D2
"<JMP EINZELSCHRITTMODUS>" :confused: :confused: :confused: *Breakpoint! von hier aus 'manuell' weiter
MOVEQ #3,D3
MOVEQ #4,D4
RTS


Gruss
smed

-----------------------
NKC'ler seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k.

NKC - OpenSource since 1983

Beiträge: 198 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert
smed
Stammgast
**
ID # 114


  Erstellt am 19. November 2018 15:35 (#2)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Na, das war eine ganz schoene Knobelei, aber nun funktionierts mit GP7.10. Das Program wird normal gestartet, ab dem Breakpoint springt das Program dann in den Einzelschrittmodus und man kann dort mit <ENTER> das Program schrittweise weiter ausfuehren.

MACRO BREAKPOINT
DC.L $41FA000A, $20084EB9, $00001C0C :cool:
ENDMACRO

START:
MOVEQ #1,D1
MOVEQ #2,D2
MOVEQ #3,D3
.BREAKPOINT *Ab hier gehts im Einzelschrittmodus weiter
MOVEQ #4,D4
MOVEQ #5,D5
RTS

Eine nuetzliche Funktion zum debuggen, koennte man eigentlich in einer GP-Version unabhaengigen Form ueber TRAP ins GP aufnehmen?

Gruss
smed

-----------------------
NKC'ler seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k.

NKC - OpenSource since 1983

Beiträge: 198 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 19. November 2018 16:53 (#3)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Moin,

nu bin ich baff!
Ich hätte nicht gedacht das man die Traceroutine auch so herum nutzen kann :eek:

Ich könnte das in der nächsten GP Version als Unterprogramm einbauen. Das würde dann wie folgt aussehen:

bef
bef
move #!tron, d7
trap #1
bef
bef

Dann ist man auch von der GP Version und der Lage im Speicher unabhängig.

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 20. November 2018 11:52 (#4)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Moin,

ich hab das jetzt mal ins GP eingebaut. Man hat jetzt die Möglichkeit den Tracemodus wie folgt aufzurufen:

move #!tron, d7
trap #1

oder

jsr @tron

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 20. November 2018 12:38 (#5)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hmm, noch ne Frage:

Wäre es sinnvoll, das Bildschirmlöschen bei diesen Aufruf zu unterbinden?

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
smed
Stammgast
**
ID # 114


  Erstellt am 21. November 2018 13:43 (#6)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Super!, ja genau, kein CLS.

Noch ein kleiner Vorschlag in Sachen GP User-Interface: wenn '1=40 Zeichen/Zeile' gewaehlt ist, koennte man die disassemblierte Zeile im Einzelschrittmodus und auch bei 'Speicher aendern' so anzeigen.

Gruss
smed

PS Selbstverstaendlich stelle ich mich gerne als Betatester fuer #!tron zur Verfuegung :D grossartiger Funktionsname uebrigens, richtig 80er !

-----------------------
NKC'ler seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k.

NKC - OpenSource since 1983

Beiträge: 198 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert
smed
Stammgast
**
ID # 114


  Erstellt am 21. November 2018 13:54 (#7)  |  Zitat Zitat   PN PN   E-Mail E-Mail


-----------------------
NKC'ler seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k.

NKC - OpenSource since 1983

Beiträge: 198 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 21. November 2018 16:44 (#8)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Moin,

ich hab deine Vorschläge betreff der Schriftgröße mal mit eingebaut :cool:

PS: tron ist der (Basic-)Befehl "trace on", Gegenstück ist dann troff. Und ja, Disney hat aus dem Befehl einen Film gemacht (den ich super finde) :D

PPS: Ich schick dir das GP (bzw. die Beta) per Mail.

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
smed
Stammgast
**
ID # 114


  Erstellt am 01. Dezember 2018 09:41 (#9)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,
nach einem jsr @tron haben d0 und a0 den wert des pc, koenntest Du d0/a0 innerhalb von tron retten und wiederherstellen bevor es im Einzelschritt weitergeht?

Sonst koennte man sich so behelfen:

start:

move.l d0,-(a7)
move.l a0,-(a7)

jsr @tron

adda #8, a7
movea.l (a7)+, a0
move.l (a7), d0
suba #12, a7


Bin mir nicht ganz sicher ob #12 der richtige Wert ist um den Stack zu korrigieren, es sollte alles so wie VOR jsr @tron wiederhergestellt werden, also die Ruecksprungadresse die jsr auf den Stack packt, sollte verworfen werden (nach jmp @tron ist der pc irgendwie verbogen, warum eigentlich?).

Gruss
smed

-----------------------
NKC'ler seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k.

NKC - OpenSource since 1983

Beiträge: 198 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 06. Dezember 2018 14:53 (#10)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Moin,

es hat ein paar Tage gedauert, aber es gibt ein überarbeitetes tron :)

Die Register (d0-d7/a0-a6) bleiben so wie sie vor dem jsr @tron waren und auch nach dem Verlassen stimmen sie noch (das wäre mit der vorgeschlagenen Lösung nicht gegeben).

Mit dem PC weiss ich allerdings auch noch nicht...

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert



| https://hschuetz.selfhost.eu | Boardregeln | Datenschutzerklärung


Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts


Seite in 0,033565 Sekunden erstellt
16 Dateien verarbeitet
gzip Komprimierung eingeschaltet
2646,19 KiB Speichernutzung