Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(debuginfo): Detect all scopes when collecting inlinees #221

Merged
merged 2 commits into from
Apr 20, 2020

Conversation

jan-auer
Copy link
Member

Fixes an issue where in some cases the inline tree might have been composed wrong. This was particularly the case in DWARF information from Rust programs, as those often contain nested scopes within functions.

Previously, we only considered functions entries when flushing inlinees into the function stream. This was violated in a tree like this:

> parent
  > inlinee 1
  > scope
    > inlinee 2

Invalid nesting:

> parent
  > inlinee 1
    > inlinee 2

Correct nesting:

> parent
  > inlinee 1
  > inlinee 2

@jan-auer jan-auer requested a review from a team April 20, 2020 12:40
@jan-auer jan-auer self-assigned this Apr 20, 2020
@jan-auer
Copy link
Member Author

Test diffs are actually OK. Since certain inlinees now have moved out of a function to become its sibling, the function ranges have changed as a result.

@jan-auer jan-auer merged commit b1d85aa into master Apr 20, 2020
@jan-auer jan-auer deleted the fix/dwarf-inlinee-nesting branch April 20, 2020 15:09
jan-auer added a commit that referenced this pull request Apr 20, 2020
* master:
  feat(symcache): Bump SYMCACHE_VERSION to 5
  fix(debuginfo): Detect all scopes when collecting inlinees (#221)
  fix(debuginfo): Calculate line record sizes for DWARF (#220)
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.

None yet

3 participants