Freigeben über


Standortstruktur (dbgmodel.h)

Definiert den Speicherort für ein -Objekt. Diese spezielle Variante von Location ist die C-COM-Zugriffsstruktur.

Beachten Sie, dass ein Standort nur in Verbindung mit einem Hostkontext Bedeutung hat. Es handelt sich um einen Ort innerhalb eines Kontexts. Beim Ausführen eines Vorgangs für den Speicherort (Lesen von Bytes, Schreiben von Bytes usw.) muss ein gültiger Hostkontext angegeben werden.

Syntax

struct Location {
  ULONG64    HostDefined;
  ULONG64    Offset;
  void       Location();
  void       Location(
    ULONG64 virtualAddress
  );
  void       Location(
    const Location & src
  );
  Location & operator=(
    const Location & src
  );
  Location & operator=(
    ULONG64 virtualAddress
  );
  bool       operator==(
    const Location & rhs
  );
  bool       operator!=(
    const Location & rhs
  );
  Location & operator+=(
    LONG64 offset
  );
  Location & operator-=(
    LONG64 offset
  );
  Location   operator+(
    LONG64 offset
  );
  Location   operator-(
    LONG64 offset
  );
  ULONG64    GetOffset();
  bool       IsVirtualAddress();
};

Member

HostDefined

Das Feld HostDefined weist zwei Zustände auf, die auf api-Ebene "Nicht undurchsichtig" sind.

0: Gibt an, dass der Offset ein Zeiger auf den virtuellen Adressraum des Ziels ist.

Ungleich Null: Der definierte Wert ist für den Host proprietär. Clients können den Offset weitergeben und ändern. Sie können den Wert nicht rechtlich ändern. Dies kann durch die IsVirtualAddress()-Methode bestimmt werden, wenn diese Struktur aus C++-Code erstellt wird.

Offset

Der Offset des Speicherorts in den durch den Hostkontext und das Feld HostDefined dieser Struktur definierten Adressraum. Wenn das Feld HostDefined null ist, ist dies die virtuelle Adresse des Standorts. Wenn das Feld HostDefined ungleich 0 ist, ist dies der Offset in einen anderen Adressraum. Sie kann beispielsweise angeben, wo sich ein bestimmtes Feld einer registrierten Struktur innerhalb des enthaltenden Registers befindet.

void Location()

Kopieren erstellt einen Speicherort.

Der Standardwert erstellt einen äquivalenten nullptr.

void Location( ULONG64 virtualAddress)

Erstellt einen Speicherort aus einem Offset in den virtuellen Adressraum des Ziels.

void Location( const Location & src)

Kopieren erstellt einen Speicherort.

Location & operator=( const Location & src)

Der Kopierzuweisungsoperator für die Location-Funktion.

Location & operator=( ULONG64 virtualAddress)

Der Zuweisungsoperator für die Positionsfunktion.

bool operator ==( const Location & rhs)

Äquivalenzoperator für die Location-Funktion.

bool operator!=( const Location & rhs)

Ungleich dem Vergleichsoperator für die Location-Funktion.

Location & Operator+=( LONG64 offset)

Der Additionszuweisungsoperator für die Location-Funktion.

Location & operator-=( LONG64 offset)

Der Subtraktionszuweisungsoperator für die Location-Funktion.

Positionsoperator+( LONG64-Offset)

Der Additionsoperator für die Location-Funktion.

Location-Operator(LONG64 offset)

Subtraktionsoperator für die Location-Funktion.

ULONG64 GetOffset()

Gibt den Offset der Position zurück.

bool IsVirtualAddress()

Gibt an, ob sich der Standort auf eine virtuelle Adresse bezieht.

Anforderungen

Anforderung Wert
Header dbgmodel.h

Weitere Informationen

Übersicht über das Debuggerdatenmodell in C++