RFC_0006 Austausch von Debug-Infos zwischen VM und GUI TOC --------------------------------------------------- 1. Debug-Kommunikation 2. Protokoll 3. Status-Meldungen der VM --------------------------------------------------- 1. RFC-Notes --------------------------------------------------- Die Erweiterungen der neuen Version sind minimal und beinhalten lediglich wenige Aenderungen: - detach: eine Session kann unterbrochen werden - devices: rekonfigurierbare Ressourcen 2. Protokoll --------------------------------------------------- Kommando : "load binaryfilename" Antwort : Status-Code VM-State Zeilennummer Filename Beschreibung : Laden eine Binary (also "Bin Laden") kommando : "run" Antwort : Status-Code VM-State Zeilennummer Filename Beschreibung : starten einer geladenen Binary kommando : "stop" Antwort : Status-Code VM-State Zeilennummer Filename Beschreibung : anhalten eines laufenden Programmes Kommando : "break zeilennummer filename" Antwort : Status-Code VM-State Zeilennummer Filename Beschreibung : setzen eines Breakpoints kommando : "clear zeilennummer filename" Antwort : Status-Code VM-State Zeilennummer Filename Beschreibung : loeschen eines Breakpoints kommando : "cont" Antwort : Status-Code VM-State Zeilennummer Filename Beschreibung : fortfahren eines angehaltenen Programmes kommando : "state" Antwort : Status-Code VM-State Zeilennummer Filename Beschreibung : melden des Status' kommando : "stack" Antwort : Status-Code VM-State Zeilennummer Filename Grösse Address1 Value1 AddressN ValueN Beschreibung : anzeigen des Stack-Inhaltes kommando : "global" Antwort : Status-Code VM-State Zeilennummer Filename Grösse Address1 Value1 AddressN ValueN Beschreibung : zeigen der ersten 20 globalen Variabeln kommando : "detach" Antwort : Status-Code VM-State Zeilennummer Filename Beschreibung : beenden einer Session, ohne die VM zu beenden kommando : "device PortX DriverFile" Antwort : Status-Code VM-State Zeilennummer Filename Beschreibung : neuer Treiber als PortX einhaengen 3. Rueckmeldung von der VM (Antwort) --------------------------------------------------- Der Aufbau der Status-Meldungen wird mittels eines Abstandes voneinander getrennt. Beispiel: 00 03 23 beispiel.grinj => die Binary der Datei beispiel.grinj steht bei Zeile 23 im Source und ist in Betrieb. Status-Codes: - 00 EV_DONE // Command executed (EventState) - 01 EV_WRONG_STATE // Command not possible - 02 EV_NO_BINARY // No Binary loaded yet - 03 EV_WRONG_PARAM - 04 BAD_COMMAND // Wrong Command sent VM-State: - 00 UNDEF = 0 // VM in undef state (no binary loaded) (State) - 01 INIT // Initialize VM (load Binary) - 02 READY // Ready for running (File loaded) - 03 RUNNING // VM is running - 04 STOP // stop VM asap (breakpoint or by user) - 05 STOPPED // VM stopped - 06 TERMINATED // Program terminated (end or internal error) - 07 SHUTDOWN // Terminate Binary and finish VM - 08 BLOCKED // VM blocked 3.1. Return Wert (Antwort) --------------------------------------------------- Fuer einzelne Antworten der VM, machen die Angaben von Zeilennummer und Filename nur bedingt Sinn. In Faellen wo Zeilennummer und Filename nicht zurueckgegeben werden koennen, wird ein ? zurueckgegeben.