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

proc: fix escapeCheck infinite recursion if something can not be #3311

Merged
merged 1 commit into from
Mar 27, 2023

Commits on Mar 24, 2023

  1. proc: fix escapeCheck infinite recursion if something can not be

    deref'd
    
    Fix infinite recursion if escapeCheck, at some point during its
    recursion, creates an unreadable variable.
    
    The deeper reason for this is that we evaluate function calls in a very
    weird order so that we can always have stack space to store
    intermediate evaluation results.
    The variable 'value' happens to be stored in a register when we try to
    make the call and because of our weird evaluation strategy registers
    are no longer available to us when we evaluate 'value'.
    
    This is not a complete fix for the issue, the real fix would be to
    evaluate everything in its natural order, storing intermediate values
    in Delve's memory instead of the target's stack. To do this we need a
    mechanism to pin heap allocated objects, which at the moment does not
    exist.
    
    Updates go-delve#3310
    aarzilli committed Mar 24, 2023
    Configuration menu
    Copy the full SHA
    034c5bc View commit details
    Browse the repository at this point in the history