Skip to content

Release v0.3.6

Choose a tag to compare

@HamsterAPig HamsterAPig released this 01 Jun 16:47
· 15 commits to master since this release

Release v0.3.6

新增

  • 静态地址查询新增 flatten_composite_members 选项,可在筛选前展开 struct、class、union 成员。
  • 开启成员展开后,父对象名称可以命中成员路径,例如 objADC.name、objADC.b[0]、objADC.b[1]。
  • 展开后的成员路径保留实例名前缀,例如 a_p.name 与 b_p.name,避免不同实例成员被错误合并。
  • 结构体内部数组展开继续受 max_array_elements 限制,避免查询结果无限膨胀。
  • README 补充了静态地址查询成员展开的示例用法。

修复

  • 修复 GCC supplementary reference fixture 的补丁脚本,正确将 DW_AT_type 的 form 改写为目标 DWARF form。
  • 修复 DW_FORM_ref_sup4 / DW_FORM_ref_sup8 类型引用解析:在 libdwarf 无法直接解析时,手动读取 supplementary DIE
    offset。
  • 修复 DW_FORM_ref_addr fixture 的 form 改写位置,确保 fixture 真正覆盖 ref_addr 解析路径。
  • 修复 supplementary reference fixture 中 sup_value 被错误标记为不可用的问题;现在可保留 StaticAddressKnown 静态地
    址状态。
  • 移除 .debug_types 解析里未使用的 debug types offset 读取,减少无效逻辑。

测试

  • 新增静态地址查询测试,覆盖:
    • 默认不展开结构体成员;
    • 开启 flatten_composite_members 后先展开再筛选;
    • 不同实例成员路径保留实例名前缀;
    • 内部数组展开仍遵守 max_array_elements;
    • 查询缓存结果保持稳定。
  • 加强 DWARF fixture 验证,覆盖 DW_FORM_ref_sup4、DW_FORM_ref_sup8、DW_FORM_ref_addr 的类型解析与静态地址保留行
    为。

Full Changelog: v0.3.5...v0.3.6