Hallo Besucher, der Thread wurde 3,5k mal aufgerufen und enthält 16 Antworten

letzter Beitrag von Endurion am

Probleme beim Debuggen mit C64 Studio &

  • Hallo!


    Ich bin neu hier und habe gerade begonnen etwas Assembler zu programmieren.
    Ich verwende unter Windows 7 als IDE das C64 Studio5.0b mit VICE3.0 als Emulator.
    Wenn ich das folgende Programm mit DEBUG starte, startet VICE mit dem C64 Bildschirm. Nach Eingabe von SYS8192 bleibt das Programm aber nirgendwo stehen (auch nicht beim Breakpoint).
    Manchmal hängt sich VICE auch auf.


    *= $2000 ;start with SYS8192 (8192 = $2000)


    clc
    lda #6
    adc #3 ; Breakpoint hier!
    adc #250
    adc #$A


    Das gleiche Verhalten habe ich auch auf meinem Notebook.
    Kann mir jemand weiter helfen?

  • In Punkto Breakpoint kann ich Dir nicht weiterhelfen, das wird aber spätestens @Endurion kompetent tun.
    Aber häng mal ein "RTS" an Dein Programm an. So wie es jetzt ist, wird nach Deinen Befehlen das abgearbeitet, was auch immer zufällig dahinter im Speicher steht, was die Aufhänger/Abstürze erklärt.

  • RTS : wat MacBacon sez.


    Hab's mal ausprobiert mit VICE 3.0, dann mit einer der 2.4er Versionen und bin selbst darüber gestolpert.
    Am Anfang ging es irgendwie auch nicht sauber mit VICE 3.0 (oder ich meinte das). Dann mit 2.4 war's ok, und nun ist es auch mit VICE 3.0 ok.


    Debuggen startest Du mit "Debug" Icon oder F5.


    Sobald der Breakpoint einkickt, siehst Du einen Strich-Cursor bzw. die Zeile hervorgehoben auf der Breakpointzeile und rechts die CPU-Register etc.
    Mit F10 (wie im Visual Studio) steppst Du eine Zeile weiter. Am Schluss wird Dir das Disassembly angezeigt und mit F5 kommst du aus dem blockierten VICE wieder ins BASIC Prompt (durch das RTS).



    <EDIT>Mir ist aufgefallen, dass es manchmal auch bei mir hängenbleibt bzw die Debugging-Zeile nicht hervorgehoben wird. F10 oder F5 helfen auch nicht weiter, nur VICE abschiessen.

  • Ich habe jetzt VICE2.4 installiert -> damit geht's!
    ^^

    Ich bin mir nicht ganz sicher, aber ich meine, dass @Endurion mal vor Kurzem etwas geschrieben hatte, dass sich das VICE 3.0 Remote Debugger Protokoll o.ä. sich verändert hat?

  • Tja, da bin ich wieder... ;(


    Ich hab jetzt meine Ordner verschoben und debugging geht nicht mehr!
    Auf meinem Stand-PC funktioniert es mit VICE2.4


    Auf dem Notebook leider nicht!
    Ich habe auch Kombinationen zwischen C64Studio 4.9, C64Studio5.0, VICE2.4 und VICE3.0 versucht - leider ohne Erfolg ?(?(?(

  • Wenn du Dein C64 Studio verschiebst, ist es an sich kein Problem.
    Du kannst mehrere Versionen parallel in verschiedenen Verzeichnissen haben.
    ABER: Das Settingsfile wird immer am gleichen Ort abgelegt, d.h. alle Versionen teilen sich dieses Einstellungsfile!


    C:\Users\<USERNAME>\AppData\Roaming\GR Games\C64Studio\1.0.0.0\settings.dat


    Versuch allenfalls mal dieses File umzubenennen/wegzusichern (zuerst C64 Studio beenden) und dann wird beim nächsten Start/Beenden von C64 Studio ein neues angelegt.
    Manchmal wird dieses File korrupt und es kann die Quelle von komischen Effekten sein.


    Wichtig ist aber auch, dass beim Kompilieren das richtige Tools-Settings ausgewählt hast, falls Du mehrere definiert hast:

  • Für VICE 3.0 gab es ein paar Anpassungen, die Version habe ich aber noch nicht offiziell herausgegeben.
    Du kannst aber gerne mal eine Testversion von http://www.georg-rottensteiner…misc/C64StudioRelease.zip testen.


    Das Debuggen über VICEs Remote-Monitor ist leider gelegentlich hakelig, da das eigentlich ein Text-Interface für Benutzer ist und nicht für technische Ansteuerung.



    Falls es mit der Testversion immer noch nicht tut, kontaktiere mich gerne direkt. Jeder Bug den ich so rausbekomme, macht es stabiler für alle.
    Hilfreich wäre eine Fehlerbeschreibung (gibt es Ausgaben im Output-Fenster? Oder bleibt quasi alles hängen und man muss den Emulator abschießen?)

  • Wenn man jeweils den x64 von vice-2.4 und vice-3.0 (in meinem Fall WinVICE) mit -remotemonitor startet und sich per telnet aufschaltet (Port 6510),
    dann stellt man die Unterschiede im Protokoll fest.
    Während 2.4 immer auf <enter> wartet, reagiert die 3.0 bereits beim ersten Eintippen des Befehls.
    Ob sich das auch durch das Betriebssystem unterscheidet weiß ich nicht.
    Auf jeden Fall ist das Protokoll leider nicht kompatibel :-(

  • Ich hab jetzt die Testversion mit VICE2.4 installiert. --> Debugging funktioniert ! :thumbsup::thumbsup::thumbsup:


    Eine Frage noch zu VICE: Wenn ich mein Programm mit SYS 8192 starte, muß ich statt Y die Taste Z und umgekehrt drücken obwohl ich wie im Bild die deutsche Tastatur zuvor eingestellt habe. Merkt sich VICE das nicht? ?(

  • Damit VICE die aktuellen Einstellungen speichert, musst du das extra auswählen (Settings->Save Current Settings = einmal manuell, Settings->Save Settings on Exit = speichert immer beim Beenden; letzteres ist aber oft lästig, wenn man ab und an etwas umstellt)

  • Hallo!
    Ich hab heute morgen das Notebook gestartet und debugging funktioniert wieder nicht ;(


    Ich habs mit WINVICE 2.4 und 3.0 versucht, auch mit der neuen Version C64Studio5c.
    Die Datei settings.dat habe ich jedesmal gelöscht, bevor ich eine neue WINVICE Version hinzugefügt habe.
    (C:\Users\<USERNAME>\AppData\Roaming\GR Games\C64Studio\1.0.0.0\settings.dat)


    Das Rogramm startet beim debugging und wird komplett ausgeführt. So, als ob der Breakpoint übersprungen wurde.


    Im output window steht das:
    Determined C:\Users\ledi001\Documents\C64\C64 Projekte\test1.asm as active documentRunning build on C:\Users\ledi001\Documents\C64\C64 Projekte\test1.asmBuild successful, 0 warnings, 0 errors encountered, compiled to file C:\Users\ledi001\Documents\C64\C64 Projekte\test1.prg, 27 bytesDebugging C:\Users\ledi001\Documents\C64\C64 Projekte\test1.asmCalling C:\Users\ledi001\Documents\C64\C64 Programme\VICE24\x64.exe with -truedrive +virtualdev -initbreak 0xffffffff -remotemonitor "C:\Users\ledi001\Documents\C64\C64 Projekte\test1.prg"Run exited with result code 0

  • Nur damit wir das sichergestellt haben:
    Du startest den Debug Modus schon mit dem entsprechenden Icon (dünner roter Pfeil nach unten ganz rechts, siehe Bild)?


  • Interessant; im Breakpoint-Fenster, hat dein Breakpoint die korrekte Adresse gesetzt?


    Wie genau setzt du den Breakpoint; und wie hast du das Debuggen gestartet?


    Edit: Ich hab mir das mal anhand deines Beispielcodes oben angesehen und kann es nicht nachvollziehen.
    Sobald ich SYS8192 absetze, wird der Breakpoint angesprungen (sofern ich im Debug-Modus gestartet habe)

  • Wenn ich den Breakpoint setze und danach debugging starte sehe ich im Breakpointfenster aber keine Adresse!

    Ja, genau diesen Effekat hatte ich recht häufig vorher weiter oben beim Testen.



    Ich habe jetzt aber nur noch die neue Testversion von Endurion getestet:
    - 2 Tool Profile erstellt, eines für VICE 2.4 und eines für VICE 3.0
    - 3x pro Profil das Debuggen mit F5 gestartet, immer mit vollständigem Beenden von VICE. Mit SYS8192 sprang der Cursor in die Debuggingzeile und die Registerinhalte wurden angezeigt. Mit F10 konnte ich weiter und am Schluss mit F5 war ich zurück im READY Prompt.
    - 3x pro Profil das Debuggen mit F5 gestartet, ohne Beenden von VICE. Mit SYS8192 sprang der Cursor in die Debuggingzeile und die Registerinhalte wurden angezeigt. Mit F10 konnte ich weiter und am Schluss mit F5 war ich zurück im READY Prompt.



    Für mich scheint die neue Testversion stabiler zu sein für das Debbugging als vorher.