位置结构 (dbgmodel.h)

定义对象的位置。 Location 的特殊变体是 C-COM 访问结构。

请注意,某个位置仅与主机上下文一起具有意义。 它是上下文中的一个位置。 对位置(读取字节、写入字节等)执行作时,必须提供有效的主机上下文。

语法

struct Location {
  ULONG64    HostDefined;
  ULONG64    Offset;
  void       Location();
  void       Location(
    ULONG64 virtualAddress
  );
  void       Location(
    const Location & src
  );
  Location & operator=(
    const Location & src
  );
  Location & operator=(
    ULONG64 virtualAddress
  );
  bool       operator==(
    const Location & rhs
  );
  bool       operator!=(
    const Location & rhs
  );
  Location & operator+=(
    LONG64 offset
  );
  Location & operator-=(
    LONG64 offset
  );
  Location   operator+(
    LONG64 offset
  );
  Location   operator-(
    LONG64 offset
  );
  ULONG64    GetOffset();
  bool       IsVirtualAddress();
};

成员

HostDefined

HostDefined 字段在 API 层有两种状态“非不透明”。

0:指示偏移量是指向目标的虚拟地址空间的指针。

非零:定义的值是主机的专有值。 客户端可以传播和更改偏移量。 它们无法合法地更改该值。 如果此结构是从C++代码生成的,则可以由 IsVirtualAddress() 方法确定。

Offset

由主机上下文和此结构的 HostDefined 字段定义的地址空间中的位置偏移量。 如果 HostDefined 字段为零,则为位置的虚拟地址。 如果 HostDefined 字段为非零,则这是一些其他地址空间的偏移量。 例如,它可能指示已注册结构的特定字段位于包含寄存器内的位置。

void Location()

复制构造位置。

默认构造等效的 nullptr。

void Location(ULONG64 virtualAddress)

从偏移量构造目标虚拟地址空间中的位置。

void Location(const Location & src)

复制构造位置。

Location & operator=(const Location & src)

位置函数的复制赋值运算符。

Location & operator=(ULONG64 virtualAddress)

位置函数的赋值运算符。

bool operator==(const Location & rhs)

位置函数的等价运算符。

bool 运算符!=(const Location & rhs)

不等于位置函数的比较运算符。

Location & operator+=(LONG64 offset)

位置函数的加法赋值运算符。

Location & operator-=(LONG64 offset)

位置函数的减法赋值运算符。

Location 运算符+(LONG64 偏移量)

位置函数的加法运算符。

Location 运算符-(LONG64 偏移量)

位置函数的减法运算符。

ULONG64 GetOffset()

返回位置的偏移量。

布尔 IsVirtualAddress()

指示位置是否引用虚拟地址。

要求

要求 价值
标头 dbgmodel.h

另请参阅

调试器数据模型C++概述