Skip to content

[AUTOMATED] Add standalone thin Mach-O DWARF reader - #115

Open
sjkim1127 wants to merge 1 commit into
Noelo-Lab:mainfrom
sjkim1127:codex/cpp-macho-dwarf-split
Open

sjkim1127 wants to merge 1 commit into
Noelo-Lab:mainfrom
sjkim1127:codex/cpp-macho-dwarf-split

Conversation

@sjkim1127

Copy link
Copy Markdown

[AUTOMATED]

Add a standalone thin Mach-O DWARF reader for linked executables, dynamic
libraries and bundles with embedded DWARF or a UUID/CPU/subtype-matched dSYM.
The external companion must have Mach-O dSYM file type. Unknown, ambiguous, malformed-header,
universal, missing and mismatched companions abstain. The returned section
buffers remain available after the companion is removed.

This is an independent, unconnected building block: it does not change
binfmt.dwarf_info, default metrics, cache keys, function identity, the C
pipeline, scores, or benchmark denominators. It is not dependent on #91.
Integration, code-section identity verification, source-function attribution,
and universal-slice selection require follow-up work. UUID equality by itself
does not prove binary code is unchanged.

Validation:

  • Six focused tests pass, including an actual macOS-built executable/dSYM,
    a mismatched real binary UUID, missing companion, malformed header,
    architecture/subtype mismatch, duplicate sections and memory ownership.
  • On fixed unofficial C++ qualification revision
    07dd95dbe6214b8a78fc1e4a55961ab515986489, the O0 OpenCC stripped image
    and matching dSYM load; the O2 dSYM is rejected for the O0 image. The 33
    compilation units and 8,911 low-PC subprogram DIEs are raw debug records,
    not unique functions, qualified ground truth or scores.
  • Existing type/byte-match focused tests on the candidate: 38 passed and two
    failed. The same two failures reproduce against clean main ae070b8 (32
    passed, two failed); no new failure identity in this focused set.
  • Scoped Black, Ruff and mypy pass. A full repository suite was not run.

The frozen corpus is the qualification dataset,
which is marked qualified=false and scoring_ready=false.

The approach and eventual integration are proposals for maintainer review;
this change does not decide the official C++ evaluation policy.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant