mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
debugger: throw a more useful error when the frame is missing
PR-URL: https://github.com/nodejs/node/pull/42776 Fixes: https://github.com/nodejs/node/issues/42775 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
@@ -681,6 +681,9 @@ function createRepl(inspector) {
|
||||
|
||||
// List source code
|
||||
function list(delta = 5) {
|
||||
if (!selectedFrame) {
|
||||
throw new ERR_DEBUGGER_ERROR('Requires execution to be paused');
|
||||
}
|
||||
return selectedFrame.list(delta).then(null, (error) => {
|
||||
print("You can't list source code right now");
|
||||
throw error;
|
||||
|
||||
30
test/sequential/test-debugger-list.js
Normal file
30
test/sequential/test-debugger-list.js
Normal file
@@ -0,0 +1,30 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
|
||||
common.skipIfInspectorDisabled();
|
||||
|
||||
const fixtures = require('../common/fixtures');
|
||||
const startCLI = require('../common/debugger');
|
||||
|
||||
const assert = require('assert');
|
||||
|
||||
const cli = startCLI([fixtures.path('debugger/three-lines.js')]);
|
||||
|
||||
(async () => {
|
||||
await cli.waitForInitialBreak();
|
||||
await cli.waitForPrompt();
|
||||
await cli.command('list(0)');
|
||||
assert.match(cli.output, /> 1 let x = 1;/);
|
||||
await cli.command('list(1)');
|
||||
assert.match(cli.output, /> 1 let x = 1;\r?\n {2}2 x = x \+ 1;/);
|
||||
await cli.command('list(10)');
|
||||
assert.match(cli.output, /> 1 let x = 1;\r?\n {2}2 x = x \+ 1;\r?\n {2}3 module\.exports = x;\r?\n {2}4 /);
|
||||
await cli.command('c');
|
||||
await cli.waitFor(/disconnect/);
|
||||
await cli.waitFor(/debug> $/);
|
||||
await cli.command('list()');
|
||||
await cli.waitFor(/ERR_DEBUGGER_ERROR/);
|
||||
assert.match(cli.output, /Uncaught Error \[ERR_DEBUGGER_ERROR\]: Requires execution to be paused/);
|
||||
})()
|
||||
.finally(() => cli.quit())
|
||||
.then(common.mustCall());
|
||||
Reference in New Issue
Block a user