Partager via


Structure d’emplacement (dbgmodel.h)

Définit l’emplacement d’un objet. Cette variante particulière de Location est le struct d’accès C-COM.

Notez qu’un emplacement n’a de sens qu’avec un contexte hôte. Il s’agit d’un emplacement dans un contexte. Lors de l’exécution d’une opération sur l’emplacement (lecture d’octets, écriture d’octets, etc...),, un contexte hôte valide doit être fourni.

Syntaxe

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();
};

Membres

HostDefined

Le champ HostDefined a deux états qui sont « non opaques » au niveau de la couche API.

0 : indique que le décalage est un pointeur vers l’espace d’adressage virtuel de la cible.

Non zéro : la valeur définie est propriétaire de l’hôte. Les clients peuvent propager et modifier le décalage. Ils ne peuvent pas légalement modifier la valeur. Cela peut être déterminé par la méthode IsVirtualAddress() si cette structure est générée à partir de code C++.

Offset

Décalage de l’emplacement dans l’espace d’adressage défini par le contexte hôte et le champ HostDefined de cette structure. Si le champ HostDefined est égal à zéro, il s’agit de l’adresse virtuelle de l’emplacement. Si le champ HostDefined n’est pas égal à zéro, il s’agit du décalage dans un autre espace d’adressage. Il peut, par exemple, indiquer où se trouve un champ particulier d’une structure inscrite dans le registre contenant.

void Location()

Copier construit un emplacement.

La valeur par défaut construit un nullptr équivalent.

void Location( ULONG64 virtualAddress)

Construit un emplacement à partir d’un décalage dans l’espace d’adressage virtuel de la cible.

void Location( const Location & src)

Copier construit un emplacement.

Location & operator=( const Location & src)

Opérateur d’assignation de copie pour la fonction d’emplacement.

Location & operator=( ULONG64 virtualAddress)

Opérateur d’affectation pour la fonction location.

bool operator==( const Location & rhs)

Opérateur d’équivalence pour la fonction location.

bool operator !=( const Location & rhs)

N’est pas égal à l’opérateur de comparaison pour la fonction d’emplacement.

Location & operator+=( LONG64 offset)

Opérateur d’affectation d’addition pour la fonction location.

Emplacement & operator-=( LONG64 offset)

Opérateur d’assignation de soustraction pour la fonction location.

Location operator+( LONG64 offset)

Opérateur d’ajout pour la fonction location.

Opérateur d’emplacement-( décalage LONG64)

Opérateur de soustraction pour la fonction location.

ULONG64 GetOffset()

Retourne le décalage de l’emplacement.

bool IsVirtualAddress()

Indique si l’emplacement fait référence à une adresse virtuelle.

Configuration requise

Condition requise Valeur
En-tête dbgmodel.h

Voir aussi

Vue d’ensemble du modèle de données C++ du débogueur