Skip to content

Release v0.3.9

Choose a tag to compare

@HamsterAPig HamsterAPig released this 30 Jun 03:09
· 4 commits to master since this release

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