다음을 통해 공유


IModelObject::GetLocation 메서드(dbgmodel.h)

GetLocation 메서드는 네이티브 개체의 위치를 반환합니다. 이러한 위치는 일반적으로 디버그 대상의 주소 공간 내에 있는 가상 주소이지만 반드시 그런 것은 아닙니다. 이 메서드에서 반환되는 위치는 가상 주소일 수 있는 추상 위치이거나, 레지스터 또는 하위 레지스터 내의 배치를 나타내거나, 디버그 호스트에 정의된 다른 임의의 주소 공간을 나타낼 수 있습니다. 결과 Location 개체의 HostDefined 필드가 0이면 위치가 실제로 가상 주소임을 나타냅니다. 이러한 가상 주소는 결과 위치의 오프셋 필드를 검사하여 검색할 수 있습니다. 호스트 정의 필드의 0이 아닌 값은 오프셋 필드가 해당 주소 공간 내의 오프셋인 대체 주소 공간을 나타냅니다. 여기서 0이 아닌 호스트 정의 값의 정확한 의미는 디버그 호스트에 대한 프라이빗입니다.

이 메서드가 호출되는 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 인터페이스