gpt4 book ai didi

javascript - 使用 Node 检查时未定义预期变量?

转载 作者:搜寻专家 更新时间:2023-11-01 00:50:30 25 4
gpt4 key购买 nike

我正在尝试使用 node inspect 命令熟悉调试。我编写了一个简单的脚本use_debugger.js,它定义了一个函数并调用它:

function count(nums, maxes) {
debugger;
return maxes;
}

count([1, 2, 3], [4, 5]);

当我进入调试器时,我希望 nums 被定义并具有值 [1, 2, 3]。但是,如果我运行 node inspect use_debugger.js 然后在 REPL 中键入 cnums,我会发现它未定义:

Kurts-MacBook-Pro:Scratch kurtpeek$ node --inspect-brk use_debugger.js
Debugger listening on ws://127.0.0.1:9229/7adfaada-c939-44a3-9150-6d1326b8c7d0
For help, see: https://nodejs.org/en/docs/inspector
^C
Kurts-MacBook-Pro:Scratch kurtpeek$ node inspect use_debugger.js
< Debugger listening on ws://127.0.0.1:9229/54fb6a12-82c8-4454-8307-6d120b0c26e8
< For help, see: https://nodejs.org/en/docs/inspector
< Debugger attached.
Break on start in use_debugger.js:1
> 1 (function (exports, require, module, __filename, __dirname) { function count(nums, maxes) {
2 debugger;
3 return maxes;
debug> c
break in use_debugger.js:2
1 (function (exports, require, module, __filename, __dirname) { function count(nums, maxes) {
> 2 debugger;
3 return maxes;
4 }
debug> maxes
repl:1
maxes
^

ReferenceError: maxes is not defined
at repl:1:1
at Script.runInContext (vm.js:101:20)
at Object.runInContext (vm.js:279:6)
at REPLServer.controlEval (internal/deps/node-inspect/lib/internal/inspect_repl.js:521:25)
at bound (domain.js:396:14)
at REPLServer.runBound [as eval] (domain.js:409:12)
at REPLServer.onLine (repl.js:621:10)
at REPLServer.emit (events.js:182:13)
at REPLServer.EventEmitter.emit (domain.js:442:20)
at REPLServer.Interface._onLine (readline.js:290:10)
debug>

我是否应该无法“访问”函数范围内的变量,numsmaxes

更新

进一步文档 estus'回答,exec maxes 命令对我有用:

debug> exec maxes
[ 4, 5 ]

https://nodejs.org/api/debugger.html#debugger_information 中所述, exec expr 命令在调试脚本的上下文中执行一个表达式。

最佳答案

maxes

在 REPL 范围内评估 maxes,而不是 count 函数范围。

the documentation 中所述:

repl - Open debugger's repl for evaluation in debugging script's context

exec expr - Execute an expression in debugging script's context

要在调试范围内评估maxes,它应该是:

repl
maxes

或者:

exec maxes

关于javascript - 使用 Node 检查时未定义预期变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52461800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com