IModelObject::GetLocation-Methode (dbgmodel.h)

Die GetLocation-Methode gibt den Speicherort des nativen Objekts zurück. Ein solcher Speicherort ist zwar in der Regel eine virtuelle Adresse innerhalb des Adressraums des Debugziels, aber nicht unbedingt. Der von dieser Methode zurückgegebene Speicherort ist ein abstrakter Speicherort, der eine virtuelle Adresse sein kann, die Platzierung innerhalb eines Registers oder Unterregisters oder einen anderen beliebigen Adressraum, wie vom Debughost definiert, angibt. Wenn das Feld HostDefined des resultierenden Location-Objekts 0 ist, gibt es an, dass der Speicherort tatsächlich eine virtuelle Adresse ist. Eine solche virtuelle Adresse kann abgerufen werden, indem das Offset-Feld des resultierenden Standorts untersucht wird. Jeder Wert ungleich 0 des Felds HostDefined gibt einen alternativen Adressraum an, wobei das Offsetfeld der Offset innerhalb dieses Adressraums ist. Die genaue Bedeutung von HostDefined-Werten ungleich Null ist für den Debughost privat.

Wenn das IModelObject , für das diese Methode aufgerufen wird, kein natives Konstrukt mit einem Speicherort in einem abstrakten Adressraum des Debugziels ist, gibt diese Methode E_FAIL zurück.

Syntax

HRESULT GetLocation(
  Location *location
);

Parameter

location

Die abstrakte Position des nativen Objekts, das durch diesen Zeiger dargestellt wird, wird hier zurückgegeben.

Rückgabewert

Diese Methode gibt HRESULT zurück, das auf Erfolg oder Fehler hinweist.

Hinweise

Codebeispiel

In diesem Beispiel definiert die Location-Struktur den Speicherort für ein Objekt.

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"
    }
}

Anforderungen

Anforderung Wert
Header dbgmodel.h

Weitere Informationen

IModelObject-Schnittstelle