Bug 1547084 Part 5 - Debugger changes for new control logic, r=loganfsmyth.
authorBrian Hackett <bhackett1024@gmail.com>
Sun, 12 May 2019 13:18:17 -1000
changeset 533039 fdd4b06edab957c38eebfaed5c80c8f0b6cc9307
parent 533038 ffc633295190897ae09451a56a0b255fff4d0682
child 533040 85b94102fa34e3f261f2d6713ba3c5b88e72e31a
push id11276
push userrgurzau@mozilla.com
push dateMon, 20 May 2019 13:11:24 +0000
treeherdermozilla-beta@847755a7c325 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersloganfsmyth
bugs1547084
milestone68.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1547084 Part 5 - Debugger changes for new control logic, r=loganfsmyth.
devtools/server/actors/thread.js
--- a/devtools/server/actors/thread.js
+++ b/devtools/server/actors/thread.js
@@ -854,17 +854,21 @@ const ThreadActor = ActorClassWithSpec(t
           // Fall through.
         case "finish":
           if (rewinding) {
             let olderFrame = stepFrame.older;
             while (olderFrame && !olderFrame.script) {
               olderFrame = olderFrame.older;
             }
             if (olderFrame) {
-              olderFrame.setReplayingOnStep(onStep, [olderFrame.offset]);
+              // Set an onStep handler in the older frame to stop at the call site.
+              // Make sure the offsets we use are valid breakpoint locations, as we
+              // cannot stop at other offsets when replaying.
+              const offsets = this._findReplayingStepOffsets({}, olderFrame, true);
+              olderFrame.setReplayingOnStep(onStep, offsets);
             }
           } else {
             stepFrame.onPop = onPop;
           }
           break;
       }
     }