IModelObject::GetLocation 方法 (dbgmodel.h)

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