Fix parsing large-offset structs, ID resolution when parent set. #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the bare-minimum changes needed to parse an ELF object such as
/system/object/dld/object
-- this has large types (needing correct large offset handling behaviour), is a child ofgenuinx
(so has different ID resolution semantics), and has a lot of types that we don't fully support here yet but which we were skipping past incorrectly.This functionally gets us to the point where we can parse a child CTF section to look at field offsets and understand, e.g., 'is this field a pointer, and what is its offset?'. Resolving parent types (and generating structs for child CTFs) would probably need a lot of extra thought, however. In addition, this PR splits the project into
lib.rs
so that we can use this as a dependency in e.g. opte-ioctl. oxidecomputer/opte#504, for instance, uses this to verify we're using the right offsets for some internal structs at load time. The only caveat is that we should probably make this repo public in that case.