类型
模块符号文件中的类型信息由两条信息标识:类型 ID 和类型所属模块的基址。 以下方法可用于查找类型 ID:
GetTypeId 返回给定类型名称的类型 ID。
GetSymbolTypeId 返回具有给定名称的符号类型的类型 ID。
GetOffsetTypeId 返回在给定位置找到的符号的类型 ID。
类型的名称和大小分别由 GetTypeName 和 GetTypeSize 返回。
以下便捷方法可用于在目标的物理和虚拟内存中读取和写入类型化数据:
打印类型化数据
若要格式化类型化数据并将其发送到输出回调,请分别对目标物理内存和虚拟内存中的数据使用 OutputTypedDataPhysical 和 OutputTypedDataVirtual 。
DEBUG_TYPEOPTS_XXX中所述的类型选项会影响引擎在将类型化数据发送到输出回调之前设置格式的方式。
可使用 AddTypeOptions 打开类型选项,并使用 RemoveTypeOptions 关闭类型选项。
GetTypeOptions 返回当前类型选项。 若要同时设置所有类型选项,请使用 SetTypeOptions。
使用类型信息解释原始数据
调试器引擎 API 支持解释类型化数据。 这提供了一种在目标上遍历对象层次结构的方法,包括查找结构成员、取消引用指针和定位数组元素。
类型化数据由 DEBUG_TYPED_DATA 结构的实例描述,并表示目标强制转换为特定类型的内存区域。 DEBUG_REQUEST_EXT_TYPED_DATA_ANSI请求操作用于操作这些实例。 可以将其初始化为表达式的结果,也可以通过将内存区域强制转换为指定类型来初始化它们。 有关DEBUG_REQUEST_EXT_TYPED_DATA_ANSI 请求 操作支持的所有子操作的列表,请参阅 EXT_TDOP。
其他信息
有关输出回调的详细信息,请参阅 输入和输出。