v0.1.4
Release Notes
Highlights
- 新增 ELF 文件元数据透出,CLI / JSON / UI 现在会展示 object class、endianness、file type、machine 和 OS ABI。
- JSON 快照导出新增敏感信息控制,可按需隐藏源文件路径、编译单元名称和 producer 指纹,同时保留地址、类型与展开树,方便离线分析共享。
- ELF 符号表读取链路补齐 metadata inspection,并补充相应单元测试,覆盖 ELF32/ELF64、大小端和快照脱敏行为。
- 修复多编译单元(multiple compile units)场景下同名 file-static 变量地址串用问题,DWARF
DW_OP_addrx现在会先解析为真实地址,再回退到符号表补位。
Added
ElfFileInfo写入ProjectModel,并序列化到 dump/snapshot JSON。ElfSymbolTable::inspect_file(),用于单独读取 ELF 文件头 metadata。- 快照导出选项
SnapshotExportOptions与 UI 导出敏感信息开关。 - 多 CU C fixture 与回归测试,验证同名 file-static 变量不会串地址。
Changed
render_scan_text()会输出 ELF class / byte order / file type / machine / os_abi。- UI 导入 ELF 后会记录 ELF metadata;导出 JSON 时按用户选项决定是否脱敏。
render_snapshot_json()改为支持导出选项,内部统一走build_export_snapshot()。
Fixed
- 修复多 CU 下
DW_OP_addrx未还原真实地址,导致同名局部静态符号都落到同一个 ELF symtab 地址的问题。 - 修复快照导出无法选择是否保留敏感路径/编译器指纹的问题。
Verification
cmake -S . -B build -G "Ninja" -DCMAKE_MAKE_PROGRAM="C:\Program Files\MATLAB\R2025b\toolbox\shared\coder\ninja\win64\ninja.exe"cmake --build build.\build\tests\elf_static_view_tests.exe.\build\elf-static-view-cli.exe dump .\build\fixtures\multi_cu_static_vars.elf --format json --symbol shared_value
Full Changelog: v0.1.3...v0.1.4