• Simon Zünd's avatar
    [debug] Allow live-editing of top-most frame · 79db56f1
    Simon Zünd authored
    This CL extends the live edit mechanism to allow editing the function
    that is currently on top of the stack, as long as that call frame is
    the only activation of that  function.
    
    The CL changes how we look for functions on the current JS stack:
    Instead of starting at thread_local_top we start at the frame we
    are currently paused in. This is possible since there can not be any
    JavaScript frames above the current "break frame", only C++ frames
    which are not relevant for live edit.
    
    If the edited script modifes the top-most function, the inspector
    will trigger a restart of that call frame. That is why we check
    if we can actually restart the function and only allow the live
    edit to go through if that is the case.
    
    Note that this CL also adds a kill switch in the form of a runtime
    flag for this feature, in case we need to pull the plug and disable
    this feature again via back-merge.
    
    R=jarin@chromium.org
    
    Bug: chromium:1334484
    Change-Id: I711913df96c8acc786ad4de28de804d2f90e1847
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695353Reviewed-by: 's avatarKim-Anh Tran <kimanh@chromium.org>
    Commit-Queue: Simon Zünd <szuend@chromium.org>
    Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#81097}
    79db56f1