зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1576318 Part 4 - Add testing method to get the debugger requests and associated stacks for the current pause, r=loganfsmyth.
Depends on D43320 Differential Revision: https://phabricator.services.mozilla.com/D43321 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
f8e6ccaf6b
Коммит
ad74710129
|
@ -1033,6 +1033,13 @@ let gPausePoint = null;
|
||||||
// In ARRIVING mode, the requests must be sent once the child arrives.
|
// In ARRIVING mode, the requests must be sent once the child arrives.
|
||||||
const gDebuggerRequests = [];
|
const gDebuggerRequests = [];
|
||||||
|
|
||||||
|
function addDebuggerRequest(request) {
|
||||||
|
gDebuggerRequests.push({
|
||||||
|
request,
|
||||||
|
stack: Error().stack,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function setPauseState(mode, point, child) {
|
function setPauseState(mode, point, child) {
|
||||||
assert(mode);
|
assert(mode);
|
||||||
const idString = child ? ` #${child.id}` : "";
|
const idString = child ? ` #${child.id}` : "";
|
||||||
|
@ -1077,7 +1084,7 @@ function sendActiveChildToPausePoint() {
|
||||||
gActiveChild.sendManifest({
|
gActiveChild.sendManifest({
|
||||||
contents: {
|
contents: {
|
||||||
kind: "batchDebuggerRequest",
|
kind: "batchDebuggerRequest",
|
||||||
requests: gDebuggerRequests,
|
requests: gDebuggerRequests.map(r => r.request),
|
||||||
},
|
},
|
||||||
onFinished(finishData) {
|
onFinished(finishData) {
|
||||||
assert(!finishData || !finishData.restoredCheckpoint);
|
assert(!finishData || !finishData.restoredCheckpoint);
|
||||||
|
@ -1823,7 +1830,7 @@ const gControl = {
|
||||||
gActiveChild.divergedFromRecording = true;
|
gActiveChild.divergedFromRecording = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
gDebuggerRequests.push(request);
|
addDebuggerRequest(request);
|
||||||
return data.response;
|
return data.response;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1860,6 +1867,10 @@ const gControl = {
|
||||||
unscannedRegions,
|
unscannedRegions,
|
||||||
cachedPoints,
|
cachedPoints,
|
||||||
|
|
||||||
|
debuggerRequests() {
|
||||||
|
return gDebuggerRequests;
|
||||||
|
},
|
||||||
|
|
||||||
getPauseData() {
|
getPauseData() {
|
||||||
// If the child has not arrived at the pause point yet, see if there is
|
// If the child has not arrived at the pause point yet, see if there is
|
||||||
// cached pause data for this point already which we can immediately return.
|
// cached pause data for this point already which we can immediately return.
|
||||||
|
@ -1868,7 +1879,7 @@ const gControl = {
|
||||||
if (data) {
|
if (data) {
|
||||||
// After the child pauses, it will need to generate the pause data so
|
// After the child pauses, it will need to generate the pause data so
|
||||||
// that any referenced objects will be instantiated.
|
// that any referenced objects will be instantiated.
|
||||||
gDebuggerRequests.push({ type: "pauseData" });
|
addDebuggerRequest({ type: "pauseData" });
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,6 +120,10 @@ ReplayDebugger.prototype = {
|
||||||
return this._control.cachedPoints();
|
return this._control.cachedPoints();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
replayDebuggerRequests() {
|
||||||
|
return this._control.debuggerRequests();
|
||||||
|
},
|
||||||
|
|
||||||
addDebuggee() {},
|
addDebuggee() {},
|
||||||
removeAllDebuggees() {},
|
removeAllDebuggees() {},
|
||||||
|
|
||||||
|
|
|
@ -2127,6 +2127,10 @@ const ThreadActor = ActorClassWithSpec(threadSpec, {
|
||||||
const loc = this.sources.getFrameLocation(frame);
|
const loc = this.sources.getFrameLocation(frame);
|
||||||
dump(`${prefix} (${loc.line}, ${loc.column})\n`);
|
dump(`${prefix} (${loc.line}, ${loc.column})\n`);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
debuggerRequests() {
|
||||||
|
return this.dbg.replayDebuggerRequests();
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
Object.assign(ThreadActor.prototype.requestTypes, {
|
Object.assign(ThreadActor.prototype.requestTypes, {
|
||||||
|
|
|
@ -154,6 +154,13 @@ const threadSpec = generateActorSpec({
|
||||||
ignoreCaughtExceptions: Arg(1, "string"),
|
ignoreCaughtExceptions: Arg(1, "string"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// For testing.
|
||||||
|
debuggerRequests: {
|
||||||
|
response: {
|
||||||
|
value: RetVal("array:json"),
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче