Partager via


IModelObject ::GetLocation, méthode (dbgmodel.h)

La méthode GetLocation retourne l’emplacement de l’objet natif. Bien qu’un tel emplacement soit généralement une adresse virtuelle dans l’espace d’adressage de la cible de débogage, il ne l’est pas nécessairement. L’emplacement retourné par cette méthode est un emplacement abstrait qui peut être une adresse virtuelle, peut indiquer un emplacement dans un registre ou un sous-registre, ou peut indiquer un autre espace d’adressage arbitraire tel que défini par l’hôte de débogage. Si le champ HostDefined de l’objet Location résultant est 0, cela indique que l’emplacement est en fait une adresse virtuelle. Cette adresse virtuelle peut être récupérée en examinant le champ Décalage de l’emplacement résultant. Toute valeur autre que zéro du champ HostDefined indique un autre espace d’adressage où le champ Offset est le décalage dans cet espace d’adressage. La signification exacte des valeurs HostDefined non nulles ici est privée pour l’hôte de débogage.

Si l’IModelObject sur lequel cette méthode est appelée n’est pas une construction native avec un emplacement dans un espace d’adressage abstrait de la cible de débogage, cette méthode retourne E_FAIL.

Syntaxe

HRESULT GetLocation(
  Location *location
);

Paramètres

location

L’emplacement abstrait de l’objet natif représenté par ce pointeur sera retourné ici.

Valeur retournée

Cette méthode retourne HRESULT qui indique la réussite ou l’échec.

Remarques

Exemple de code

Dans cet exemple, la structure Location définit l’emplacement d’un objet.

ComPtr<IModelObject> spObject; /* get a native object */

Location loc;
if (SUCCEEDED(spObject->GetLocation(&loc)))
{
    if (loc.IsVirtualAddress()) /* or loc.HostDefined == 0 */
    {
        // The object is in memory at an address specified by Offset
        ULONG64 address = loc.Offset;
    }
    else
    {
        // The object is in some abstract "address space" (e.g.: it's enregistered).  
        // Arithmetic can still be used on the 'Offset' field in order to access
        // sub-objects within the abstract "address space"
    }
}

Configuration requise

Condition requise Valeur
En-tête dbgmodel.h

Voir aussi

Interface IModelObject