1. 30 May, 2018 1 commit
    • Alexey Kozyatinskiy's avatar
      [inspector] use interrupt for pause only as last resort · 6d87d957
      Alexey Kozyatinskiy authored
      With this CL we use interrupt for pause in two cases:
      - when we process Debugger.pause on interruption,
      - when we would like to break as soon as possible after OOM.
      In all other cases, e.g. for async step into we use break
      on function call by calling StepIn debugger action.
      
      In mentioned cases we should not actually use interrupt as well:
      - Debugger.pause in this case scheduled using interrupt and we
        may just break right now without requesting another interrupt,
        unfortunately blink side is not ready,
      - we should use more reliable way to break right after near OOM
        callback, otherwise we can get this callback, increase limit,
        request break on next interrupt, before interrupt get another
        huge memory allocation and crash.
      
      There are couple advantages:
      - we get much better break locations for async stepping
        (see inspector tests expectations),
      - we can remove DEBUG_BREAK interruption
        (it should speedup blackboxing with async tasks, see
        removed todo in debug.cc for details)
      - it is required preparation step for async step out,
        (see https://chromium-review.googlesource.com/c/v8/v8/+/1054618)
      
      Bug: v8:7753
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Iabd7627dbffa9a0eab1736064caf589d02591926
      Reviewed-on: https://chromium-review.googlesource.com/1054155
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53439}
      6d87d957
  2. 23 Nov, 2017 1 commit
    • Alexey Kozyatinskiy's avatar
      [inspector] introduced universal Debugger.pauseOnAsyncCall · 653a9e2b
      Alexey Kozyatinskiy authored
      If protocol client needs to make step-into async call:
      - pause before async call using any Debugger agent capabilities,
      - call Debugger.stepInto with breakOnAsyncCall flag,
      - wait for Debugger.paused event, this event will contain
        asyncCallStackTrace if async call is scheduled,
      - call Debugger.pauseOnAsyncCall on each known target,
      - resume execution in current debugger by Debugger.resume.
      
      Bug: chromium:778796
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: I40c56278e7b1ceafc3bf81608b8ca6716c2b3168
      Reviewed-on: https://chromium-review.googlesource.com/773573
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49594}
      653a9e2b