Release v0.3.6
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_addrfixture 的 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