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

symbolizer: cache each DWARF DIE's nextOffset and nextSiblingOffset #2111

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Commits on Dec 20, 2023

  1. symbolizer: cache each DWARF DIE's nextOffset and nextSiblingOffset

    This avoids exponential growth in runtime when parsing deeply nested debug info. The scenario that would otherwise lead to exponential growth involves `forEachChild()` with an argument lambda that itself recurses into children. At each layer of depth, `forEachChild()` iterates over all indirect children (to skip them) and so does the argument lambda (to process the top-level ones and recurse on their children). So each top-level DIE is visited twice, each second-level is visited four times, each third-level one is visited eight times, and so on.
    oremanj committed Dec 20, 2023
    Configuration menu
    Copy the full SHA
    2588e64 View commit details
    Browse the repository at this point in the history