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


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

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

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

Синтаксис

HRESULT GetLocation(
  Location *location
);

Параметры

location

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

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

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

Замечания

Пример кода

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

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