Autor Thema: Debugging  (Gelesen 6726 mal)

elfish_rider

  • Beiträge: 293
    • Profil anzeigen
Gespeichert
« am: 27. November 2004, 20:42 »
Ich suche ein Programm, mit dem ich mein Programm schrittweise durchgehen kann und jederzeit den Inhalt der Register und des Speichers sehe. Gibt es so etwas überhaupt, wenn ja, wo und welche Erfahrungen habt ihr damit gemacht?

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 27. November 2004, 20:44 »
Soweit ich weiß, kann Bochs das doch im Debug-Modus...und sonst gibt's ASM-Debugger...die sollten das auch können...

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #2 am: 27. November 2004, 23:18 »
das problem mit den dingern ist halt, dass du damit sowas wie eingaben nicht machen kannst, und du also nicht das hast, als würde der code ausgeführt. ich habe mir eine funktion geschrieben, mit der ausgegeben wird, wie dir register stehen, und dann auf einen tastendruck gewartet wird. den funktion-call kann ich dann überall einbauen, und sehe so die register an wichtigen stellen.
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #3 am: 27. November 2004, 23:53 »
Im Bochs-Debugmodus können die Register mit "dump_cpu" ausgegeben werden.

Man muss allerdings einen Breakpoint gesetzt haben oder den code im einzelschritt laufen lassen.
----------------------
Redakteur bei LowLevel

elfish_rider

  • Beiträge: 293
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 28. November 2004, 11:23 »
Ich finde den Bochs-Debugger eher mühsam. Man muss umständlicherweise nach jedem BIOS-Int-Aufruf einen Breakpoint setzen, sonst muss man die langen BIOS-Prozeduren in Einzelschritten durchmachen  :|

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #5 am: 28. November 2004, 11:31 »
deswegen benutze ich meine dump_regs funktion, die kannste einfach dahintersetzen.
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

elfish_rider

  • Beiträge: 293
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 28. November 2004, 11:36 »
Das macht dann wiederum die Einzelschritte praktisch unmöglich...

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #7 am: 28. November 2004, 13:17 »
du kannst ja hinter jeden befehl die funktion hängen  :lol:
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

elfish_rider

  • Beiträge: 293
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 28. November 2004, 14:38 »
na, wenn das nicht umständlich ist...

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #9 am: 28. November 2004, 15:14 »
naja, gewisse teile vom code weißte ja, dass funktionieren! z.B. eine stringausgabe und das BIOS-Int lesen, usw. d.h. da musste keinen test einbauen. und bei dem anderen machste halt die funktion da hin, wo der abschnitt zuende ist. und wenn es nicht geht verschiebste es nach vorne und grenzt damit den fehler ein.
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

 

Einloggen