1. 13 Sep, 2019 1 commit
    • Dmitry Gozman's avatar
      [inspector] Simplify async stepping · fe3d51e1
      Dmitry Gozman authored
      Currently, debugger pauses on async call schedule and then waits for Debugger.pauseOnAsyncCall
      with parentStackTraceId to actually schedule the pause.
      
      This CL combines these two steps:
      - For local async tasks, it just stores m_taskWithScheduledBreak at the time of schedule,
        to be able to pause once this task is run.
      - For external async tasks, it plumbs "should_pause" boolean in V8StackTraceId from
        the point of schedule to the point of execution, and schedules a pause once
        externalAsyncTaskStarted is called with "should_pause" set to true.
      
      This approach greatly simplifies the implementation, and reduced frontend to a single
      "breakOnAsyncCall: true" parameter in Debugger.stepInto.
      
      Drive-by: introduce hasScheduledBreakOnNextFunctionCall() to make
      SetBreakOnNextFunctionCall management more robust.
      
      Note: artificial pauses at async call schedule time are gone from test expectations -
      we now only pause when user actually wants to pause, which makes protocol much simpler.
      
      See also design doc linked in the bug.
      
      BUG=chromium:1000475
      
      Change-Id: I2d16f79c599fe196b2aaeca8223c63437a2954a9
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1783724
      Commit-Queue: Dmitry Gozman <dgozman@chromium.org>
      Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63737}
      fe3d51e1
  2. 12 Sep, 2019 39 commits