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 |