iModelObject::GetLocation 方法 (dbgmodel.h)

GetLocation 方法将返回本机对象的位置。 虽然此类位置通常是调试目标地址空间中的虚拟地址,但不一定如此。 此方法返回的位置是一个抽象位置,可以是虚拟地址,可以指示在寄存器或子寄存器中的位置,也可以指示调试主机定义的其他任意地址空间。 如果生成的 Location 对象的 HostDefined 字段为 0,则表示该位置实际上是一个虚拟地址。 可以通过检查结果位置的 Offset 字段来检索此类虚拟地址。 HostDefined 字段的任何非零值都指示备用地址空间,其中 Offset 字段是该地址空间内的偏移量。 此处非零 HostDefined 值的确切含义对调试主机是专用的。

如果调用此方法的 IModelObject 不是本机构造,其位置位于调试目标的某个抽象地址空间中,则此方法将返回E_FAIL。

语法

HRESULT GetLocation(
  Location *location
);

参数

location

此处将返回由此指针表示的本机对象的抽象位置。

返回值

此方法返回指示成功或失败的 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"
    }
}

要求

要求
Header dbgmodel.h

另请参阅

IModelObject 接口