我试图在Visual Studio代码中单步执行一个简单的javascript示例,但调试器挂起试图断开连接。
macOS Sierra版本10.12.6
VSCode版本1.18.1(最新)
与Homebrew一起安装的Node.js v8.9.2(最新版本)
Debugging with inspector protocol because Node.js v8.9.2 was detected.
node --inspect-brk= /*(port)*/ jsSandbox.js
Debugger listening on ws:// (ip address)
Debugger attached.
Waiting for the debugger to disconnect...
这似乎是Code和Node已经关闭的问题,这就是为什么我很困惑。难道我做错了什么?
这是我正在尝试调试的唯一的javascript文件:
// learning about closure
function increase() { // — gets called once
var getBig = 0;
return function() { // — — gets called each time
getBig += 1; // — — increments each time
console.log(getBig);
};
}
var bigOne = increase(); // -- a reference to the instance of the function
bigOne(); //1
bigOne();//2
...和项目的launch.json配置:
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/jsSandbox.js",
"console": "internalConsole"
}
我在代码中发现语法错误。问题是我没有抓住异常。使用VS Code,我只勾选了“Uncaught Exceptions”并找到了错误的代码。
对我来说,一个依赖在调试时崩溃,这似乎也使vscode调试器本身崩溃。重新启动VSCode将允许我再次调试。删除错误的依赖项(即修复代码,如另一个答案所示),允许调试过程关闭,尽管调试控制台消息仍然令人困惑:
Debugger listening on ws://127.0.0.1:48673/54esaf46-659e-sd92-5e45-01e78845825e
Debugger attached.
Waiting for the debugger to disconnect...
看来调试器无法断开连接。但是我之后开始新的调试会话没有问题。
检查你的launch.json文件。它出现在项目的.vscode文件夹中。在launch.json中将程序值更改为$ {workspaceFolder} /。
对我来说,有以下帮助:
它有点重置我认为从这个“无法断开”故障的调试器。
我发现安装了多个“Node Debug”扩展。 “React Native Tools”依赖于这两者。在我删除“React Native Tools”然后删除“Node Debug”扩展后,VS Code恢复了运行调试器的正常和预期行为。我使用了默认的启动配置:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/bin/www"
}
]
}
当您破坏代码时会发生这种情况。启动您的项目,您将看到您的应用程序崩溃。解决问题,您将能够再次调试。