调试node.js时出现“断点设置但尚未绑定”错误

我已经使用link中的配方将Visual Studio代码配置为调试nodejs,chrome(vuejs)应用程序。但是,当我在Visual Studio代码中调试“ Meteor All”错误时,出现“无法执行调试脚本”错误。 如果在服务器端代码中添加断点,则会看到“设置了断点但尚未绑定”。但是,我可以正确调试客户端代码。 我想念什么?

Visual Studio代码中的Launch.json:

{
    "version": "0.2.0","configurations": [
        {
            "type": "chrome","request": "launch","name": "Meteor: Chrome","url": "http://localhost:3000","webRoot": "${workspaceFolder}","outputCapture": "std"
        },{
            "type": "node","name": "Meteor: Node","runtimeExecutable": "npm","runtimeArgs": ["run","debug"],"outputCapture": "std","port": 9229,"timeout": 30000
        }
    ],"compounds": [
        {
            "name": "Meteor: All","configurations": ["Meteor: Node","Meteor: Chrome"]
        }
    ]
}

登录Visual Studio代码:

C:\Program Files\nodejs\npm.cmd run debug 

> vue-meteor-demo@ debug c:\temp\vuemeteor2
> meteor run meteor --settings settings.json --inspect-brk=9229

Unknown run target: meteor
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! vue-meteor-demo@ debug: `meteor run meteor --settings settings.json --inspect-brk=9229`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the vue-meteor-demo@ debug script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\AjitGoel\AppData\Roaming\npm-cache\_logs\2019-11-14T14_17_23_502Z-debug.log

debug.log:

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',1 verbose cli   'run',1 verbose cli   'debug' ]
2 info using npm@6.4.1
3 info using node@v10.15.0
4 verbose run-script [ 'predebug','debug','postdebug' ]
5 info lifecycle vue-meteor-demo@~predebug: vue-meteor-demo@
6 info lifecycle vue-meteor-demo@~debug: vue-meteor-demo@
7 verbose lifecycle vue-meteor-demo@~debug: unsafe-perm in lifecycle true
8 verbose lifecycle vue-meteor-demo@~debug: PATH: <Path>
9 verbose lifecycle vue-meteor-demo@~debug: CWD: c:\temp\vuemeteor2
10 silly lifecycle vue-meteor-demo@~debug: Args: [ '/d /s /c',10 silly lifecycle   'meteor run meteor --settings settings.json --inspect-brk=9229' ]
11 silly lifecycle vue-meteor-demo@~debug: Returned: code: 1  signal: null
12 info lifecycle vue-meteor-demo@~debug: Failed to exec debug script
13 verbose stack Error: vue-meteor-demo@ debug: `meteor run meteor --settings settings.json --inspect-brk=9229`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:301:16)
13 verbose stack     at EventEmitter.emit (events.js:182:13)
13 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:182:13)
13 verbose stack     at maybeclose (internal/child_process.js:962:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
14 verbose pkgid vue-meteor-demo@
15 verbose cwd c:\temp\vuemeteor2
16 verbose Windows_NT 10.0.18362
17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "debug"
18 verbose node v10.15.0
19 verbose npm  v6.4.1
20 error code ELIFECYCLE
21 error errno 1
22 error vue-meteor-demo@ debug: `meteor run meteor --settings settings.json --inspect-brk=9229`
22 error Exit status 1
23 error Failed at the vue-meteor-demo@ debug script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1,true ]
tencent54555 回答:调试node.js时出现“断点设置但尚未绑定”错误

我只使用--inspect,它工作正常。

我没有成功用--inspect-brk=9229指定端口

--inspect仍使用端口9229

您的服务器配置应如下所示:

{
  "type": "node","request": "attach","name": "server","restart": true,"port": 9229
},

restart选项在您编辑代码时非常有用,因为它可以在服务器重启(通过重新连接)后继续存在

,

如果调试器无法通过调试器所附加的节点进程“到达”断点文件,则似乎显示此消息。

该错误消息在VS Code文档中没有很好地涵盖,因此很难找出导致该错误的原因。

我通过将文件添加到项目中并在其中放置一个断点来进行测试,但没有include / require在任何地方添加它。当您运行调试器(在另一个文件上)时,刚刚添加的断点将被“设置但尚未绑定”。 相反,如果您include / require新文件,则断点将是正常的(即使您的测试从未达到断点所在的行)。

就我而言,我继承了一个代码库,发现如果您的脚本生成子进程(例如通过child_process.execFile),则调试器将不会跟踪子进程中的代码。而是将断点显示为“已设置断点但尚未绑定”。

本文链接:https://www.f2er.com/3101753.html

大家都在问