OOStuBS/MPStuBS
stub.h-Dateireferenz

Enthält die für Remotedebugging notwendigen Klassen und Funktionen. Mehr ...

#include "machine/serial.h"
Include-Abhängigkeitsdiagramm für stub.h:

Klassen

struct  debug_context
 Gesicherter Debug-Unterbrechungskontext. Mehr ...
 
class  GDB_Stub
 GDB Remote Stub KlasseDiese Klasse ermöglicht ein entferntes Debuggen des Betriebssystems mit GDB auf echter Hardware (aber auch im Emulator), in dem sie einen Teil des GDB Remote Serial Protocols (RSP) implementiert, eigene Unterbrechungsbehandlungsroutinen für Traps installiert und über die serielle Schnittstelle kommuniziert. Mehr ...
 
struct  GDB_Stub::state
 Struktur mit dem Systemzustands nach Traps. Mehr ...
 

Funktionen

void breakpoint (void)
 Setze einen manuellen Debug Breakpoint. Mehr ...
 
void debug_handler (struct debug_context *context)
 Low-Level Debug-Interrupt-Behandlung. Mehr ...
 

Ausführliche Beschreibung

Enthält die für Remotedebugging notwendigen Klassen und Funktionen.

Dokumentation der Funktionen

◆ breakpoint()

void breakpoint ( void  )
inline

Setze einen manuellen Debug Breakpoint.

Es wird ein Breakpoint-Trap ausgelöst

◆ debug_handler()

void debug_handler ( struct debug_context context)

Low-Level Debug-Interrupt-Behandlung.

Erlaube der generischen Unterbrechungsbehandlung Zugriff auf die geschützten Methoden dieser Klasse.

Debug-Unterbrechungsbehandlungsroutine des Systems, analog zu guardian . Aufruf dieser Funktion durch den Assembler Teil der Debug- Unterbrechungsbehandlung (dbg_irq_entry_* in der debug/gbd/handler.asm) – diese Routinen müssen zuvor mittels GDB_Stub::install_handler installiert werden. Nach dem vorbereiten der Daten wird GDB_Stub::handle aufgerufen, welches mit dem Host über die serielle Schnittstelle kommuniziert.

Zu beachten
Für korrekte Funktionalität im Multiprozessorfall wird eine korrekte Implementierung der Klasse Ticketlock vorausgesetzt!
Parameter
contextbeinhaltet einen Pointer auf den eigenen Stack, über den auf den Debug-Unterbrechungskontext zugegriffen werden kann.