Поделиться через


Метод IModelObject::GetLocation (dbgmodel.h)

Метод GetLocation возвращает расположение собственного объекта. Хотя такое расположение обычно является виртуальным адресом в адресном пространстве целевого объекта отладки, это не обязательно так. Расположение, возвращаемое этим методом, является абстрактным расположением, которое может быть виртуальным адресом, может указывать на размещение в регистре или подрегистрале или может указывать на другое произвольное адресное пространство, определенное узлом отладки. Если поле HostDefined результирующего объекта Location равно 0, это означает, что расположение фактически является виртуальным адресом. Такой виртуальный адрес можно получить, проверив поле Смещение результирующего расположения. Любое ненулевое значение поля HostDefined указывает на альтернативное адресное пространство, где поле Offset является смещением в пределах этого адресного пространства. Точное значение ненулевых значений HostDefined здесь является частным для узла отладки.

Если объект IModelObject , в котором вызывается этот метод, не является собственной конструкцией с расположением в некотором абстрактном адресном пространстве целевого объекта отладки, этот метод возвращает E_FAIL.

Синтаксис

HRESULT GetLocation(
  Location *location
);

Параметры

location

Здесь будет возвращено абстрактное расположение собственного объекта, представленного указателем this.

Возвращаемое значение

Этот метод возвращает HRESULT, который указывает на успех или сбой.

Комментарии

Образец кода

В этом примере структура Location определяет расположение объекта.

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

Требования

Требование Значение
Заголовок dbgmodel.h

См. также раздел

Интерфейс IModelObject