这是答案的一部分(而不是答案本身)。
到目前为止,我已经花了两天时间尝试同样的事情,并且发现ClearScript不使用node来调试JavaScript代码 = /。
已经成功运行了node.exe并附加了调试器:
node进程列表输出为(http://127.0.0.1:9229/json/list):
[ {
"description": "node.js instance",
"faviconUrl": "https://nodejs.org/static/favicon.ico",
"id": "574da142-2ee2-44da-a912-03f96868339c",
"title": "Administrator: IA-32 Visual Studio 2008 mode - node --inspect[6416]",
"type": "node",
"url": "file://"
} ]
但它看起来与 ClearScript.V8 设备(http://127.0.0.1:9222/)完全不同:
Type: connect
V8-Version: 5.5.372.40
Protocol-Version: 1
Embedding-Host: V8Runtime
Content-Length: 0
类似于你的。
继续阅读,V8实现了自己的调试协议,但我没有找到任何确定性文件。整个互联网都有一些零碎的信息,但没有完整的资料。
我在Chrome Dev Tools中设法识别远程设备,但除此之外,没有选项可以检查设备,不确定为什么(可能是因为我们都使用较旧版本的ClearScript 5.4.x)。
CDT>远程设备:Remote Target #127.0.0.1 / Target(就这样了,没有按钮、链接或其他操作)。
最后的希望是自己构建一个检查器,以某种程度上至少看到js堆栈跟踪(这最初是我的目标)。
---编辑:为了总结和完成答案(为op、我和其他人):
发现了一个正确运作的东西“Microsoft Code”。需要进行一些配置示例的微调,阅读他们的帮助文档,但使其正常工作。
加载脚本源代码、断点、控制台,一切都像广告中说的那样顺利。
如何:
launch.json 源代码:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program (NodeJS)",
"program": "${workspaceRoot}/bin/Debug/",
"cwd": "${workspaceRoot}",
},
{
"type": "node",
"request": "attach",
"name": "Attach by Process ID",
"processId" :"${command:PickProcess}",
"cwd": "${workspaceRoot}",
},
{
"type": "node",
"request": "attach",
"name": "Attach to CSV8:9222 (Inspector)",
"protocol": "inspector",
"address": "127.0.0.1",
"port": 9222,
},
{
"type": "node",
"request": "attach",
"name": "Attach to CSV8:9222 (Legacy)",
"protocol": "legacy",
"address": "127.0.0.1",
"port": 9222,
},
{
"type": "node",
"request": "attach",
"name": "Attach to CSV8:9222 (Auto)",
"protocol": "auto",
"address": "127.0.0.1",
"port": 9222,
},
]
}
希望这也能对您有所帮助。