Browse Source

debugger: Fix breakpoint not showing after restart

The reason this wasn't working was because after restart, when restoring
breakpoints the scripts wasn't loaded, so the breakpoint.script was
undefined. As a fix I added another check to use breakpoint.scriptReq
instead of breakpoint.script, which is the same except when the
breakpoint is a function.

fixes #7027
v0.10.26-release
Farid Neshat 11 years ago
committed by Timothy J Fontaine
parent
commit
562b015170
  1. 5
      lib/_debugger.js
  2. 11
      test/simple/test-debugger-repl-restart.js

5
lib/_debugger.js

@ -1130,8 +1130,9 @@ Interface.prototype.list = function(delta) {
var current = lineno == 1 + client.currentSourceLine, var current = lineno == 1 + client.currentSourceLine,
breakpoint = client.breakpoints.some(function(bp) { breakpoint = client.breakpoints.some(function(bp) {
return bp.script === client.currentScript && return (bp.scriptReq === client.currentScript ||
bp.line == lineno; bp.script === client.currentScript) &&
bp.line == lineno;
}); });
if (lineno == 1) { if (lineno == 1) {

11
test/simple/test-debugger-repl-restart.js

@ -22,10 +22,19 @@
var repl = require('./helper-debugger-repl.js'); var repl = require('./helper-debugger-repl.js');
repl.startDebugger('breakpoints.js'); repl.startDebugger('breakpoints.js');
var linesWithBreakpoint = [
/1/, /2/, /3/, /4/, /5/, /\* 6/
];
// We slice here, because addTest will change the given array.
repl.addTest('sb(6)', linesWithBreakpoint.slice());
var initialLines = repl.initialLines.slice()
initialLines.splice(2, 0, /Restoring/, /Warning/);
// Restart the debugged script // Restart the debugged script
repl.addTest('restart', [ repl.addTest('restart', [
/terminated/, /terminated/,
].concat(repl.initialLines)); ].concat(initialLines));
repl.addTest('list(5)', linesWithBreakpoint);
repl.addTest('quit', []); repl.addTest('quit', []);

Loading…
Cancel
Save