Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Struktur mit dem Systemzustands nach Traps GDB erlaubt sowohl das Lesen als auch Ändern von Registern. Diese werden zum Beginn (vor der Ausführung des eigentlichen GDB-Stub-Codes) gesichert und anschließend in die vorliegende Struktur geschrieben – und üblicherweise auch direkt übertragen. Änderungen werden zuerst in dieser Struktur gespeichert und kurz vor dem fortsetzen des eigentlichen Betriebsysstemcodes zurückgeschrieben. Mehr ...

#include <debug/gdb/state.h>

Klassen

struct  Register
 Zugriffsdaten für ein gesichertes Register. Mehr ...
 

Öffentliche Typen

enum  RegisterNumber {
  REG_RAX, REG_RBX, REG_RCX, REG_RDX,
  REG_RSI, REG_RDI, REG_RBP, REG_RSP,
  REG_8, REG_9, REG_10, REG_11,
  REG_12, REG_13, REG_14, REG_15,
  REG_RIP, REG_EFLAGS, REG_CS, REG_SS,
  REG_DS, REG_ES, REG_FS, REG_GS,
  REG_ST0, REG_ST1, REG_ST2, REG_ST3,
  REG_ST4, REG_ST5, REG_ST6, REG_ST7,
  REG_FCTRL, REG_FSTAT, REG_FTAG, REG_FISEG,
  REG_FIOFF, REG_FOSEG, REG_FOOFF, REG_FOP,
  REG_XMM0, REG_XMM1, REG_XMM2, REG_XMM3,
  REG_XMM4, REG_XMM5, REG_XMM6, REG_XMM7,
  REG_XMM8, REG_XMM9, REG_XMM10, REG_XMM11,
  REG_XMM12, REG_XMM13, REG_XMM14, REG_XMM15,
  REG_MXCSR, REGISTERS
}
 

Öffentliche, statische Methoden

static Register get (enum RegisterNumber reg=REGISTERS, int8_t cpu=0)
 Zugriffsdaten für ein bestimmtes gesichertes Register holen. Mehr ...
 
static Register get (uintptr_t reg, int8_t cpu=0)
 
static void save (const debug_context *const context)
 Sichere den Kontext aus der Struktur (und der FPU) Mehr ...
 
static void restore (debug_context *const context)
 Lade den (geänderten) Kontext in die Register zurück. Mehr ...
 

Öffentliche Attribute

int signum
 

Ausführliche Beschreibung

Struktur mit dem Systemzustands nach Traps GDB erlaubt sowohl das Lesen als auch Ändern von Registern. Diese werden zum Beginn (vor der Ausführung des eigentlichen GDB-Stub-Codes) gesichert und anschließend in die vorliegende Struktur geschrieben – und üblicherweise auch direkt übertragen. Änderungen werden zuerst in dieser Struktur gespeichert und kurz vor dem fortsetzen des eigentlichen Betriebsysstemcodes zurückgeschrieben.

Dokumentation der Aufzählungstypen

◆ RegisterNumber

Aufzählungswerte
REG_FCTRL 

FPU Control Word (fcw)

REG_FSTAT 

FPU Status Word (fsw)

REG_FTAG 

FPU Tag Word (ftw)

REG_FISEG 

FPU IP Selector (fcs)

REG_FIOFF 

FPU IP Offset (fip)

REG_FOSEG 

FPU Operand Pointer Selector (fos)

REG_FOOFF 

FPU Operand Pointer Offset (foo)

REG_FOP 

Last Instruction Opcode (fop)

Dokumentation der Elementfunktionen

◆ get()

State::Register State::get ( enum RegisterNumber  reg = REGISTERS,
int8_t  cpu = 0 
)
static

Zugriffsdaten für ein bestimmtes gesichertes Register holen.

Parameter
regRegisternummer. Entspricht diese keinem gültigen Register (also NUM_REGISTERS), so werden alle Register zurückgegeben
cpuAuswahl der CPU (oder <= 0 für aktuelle CPU)
Rückgabe
Struktur mit Speicheraddresse und Größe

◆ restore()

void State::restore ( debug_context *const  context)
static

Lade den (geänderten) Kontext in die Register zurück.

Parameter
contextZeiger auf den Kontext, welcher am Ende der Unterbrechungsbehandlung wiederhergestellt wird.

◆ save()

void State::save ( const debug_context *const  context)
static

Sichere den Kontext aus der Struktur (und der FPU)

Parameter
contextZeiger auf den Kontext vor der Unterbrechung

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
  • debug/gdb/state.h
  • debug/gdb/state.cc