Release v0.3.9
Release Note
修复
- 修复 DW_FORM_ref_sig8 指向 .debug_types type unit 时,成员类型未完整物化的问题。
- 修复 FlagValue.all、FlagValue.bits 等本地 DW_FORM_ref4 类型引用显示为 的问题。
- 修复数组元素、union 成员、bitfield 成员在 ref_sig8 debug_types 场景下无法继续展开的问题。
改进
- .debug_types 手工兜底解析现在会索引同一 type unit 中的顶层 sibling DIE,包括:
- DW_TAG_base_type
- DW_TAG_array_type
- 带 DW_AT_signature 的声明型 struct / union / class
- 本地 type unit 引用会生成内部稳定类型 ID,并递归写入类型图,避免展开器找不到类型。
测试
- 扩展 ref_sig8_debug_types direct / indirect fixture 覆盖。
- 新增断言覆盖:
- global_value.flags[0].all [StaticLayoutKnown] unsigned int
- global_value.flags[0].bits [StaticLayoutKnown] FlagBits
- global_value.flags[0].bits.enabled [StaticLayoutKnown] unsigned int
验证
text.\build\elf-static-view-cli.exe dump .\build\fixtures\ref_sig8_debug_types.elf --show-runtime-only --symbol
global_value --expand-depth8.\build\elf-static-view-cli.exe dump .\build\fixtures\ref_sig8_debug_types_indirect.elf
--show-runtime-only --symbol global_value --expand-depth8.\build\tests\elf_static_view_tests.exe
Full Changelog: v0.3.8...v0.3.9