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 |