VSC 调试器未附加到 RPi 上的 node.js

VSC Debugger does not attach to node.js on RPi

我正在尝试在 Mac 本书上设置 VSC,以便在 Raspberry Pi 上远程调试 nodejs。 Node是树莓派上的运行 Inspector (--inspect-brk) 好像有什么联系,但是.js文件没有打开,编辑器也没有跳到第一行。 我遵循了这条指令:https://github.com/BretStateham/pinodevscode 我用谷歌搜索了 3 个晚上都没有成功。为了检查远程调试是否正常工作,我在 Mac 的书上设置了一个附加到 nodejs 的远程调试配置(这很有效)。当我尝试用 RPi 做完全相同的事情时(所以我基​​本上在配置中放置了不同的 IP 地址和 RemoteRoot)它不再工作。

这是我目前在 Pi 设置中所做的:

我在launch.json中的配置:

            "address": "192.168.178.42",
            "localRoot": "${workspaceFolder}",
            "name": "Attach to Remote",
            "trace": true,
            "port": 9229,
            "remoteRoot": "/home/user/MYCODE",
            "request": "attach",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "type": "pwa-node"
        },

Runtime.launch 远程设置的标签。 (端口包含在URL)

{
    "tag": "runtime.launch",
    "timestamp": 1603657311615,
    "message": "Discovered target URL from /json/list",
    "metadata": {
        "url": "ws://192.168.178.42:9229/c403f26a-422c-4a79-aa59-30b108cc0b51",
        "fixed": "ws://192.168.178.42:9229/c403f26a-422c-4a79-aa59-30b108cc0b51"
    },
    "level": 0
}

Runtime.launch 本地设置的标签。 (端口包含在URL中)

{
    "tag": "runtime.launch",
    "timestamp": 1603655650439,
    "message": "Discovered target URL from /json/list",
    "metadata": {
        "url": "ws://localhost/94b1ced4-4eb9-4ca6-a710-c175393f6220",
        "fixed": "ws://localhost:9229/94b1ced4-4eb9-4ca6-a710-c175393f6220"
    },
    "level": 0
}

会不会是这个问题?

终于找到了潜在的根本原因和解决方案(我post在这里,以防其他人有类似的问题):

  • 除了上述差异之外,两个日志文件的差异还有另一个细微差别:本地(工作)副本报告节点版本 12,而另一个在同一位置没有任何报告
  • 基于那个观察,我决定 double-check 我的节点安装: 事实证明,虽然我在 Raspberry 上安装了节点 10 并使用 nodejs -v 验证了正确的安装,但 bash 仍然在默认别名 node 下具有系统版本节点 8。
  • 更改后,我可以按预期启动调试会话
  • Nodejs 8 的文档已经指出,使用 --inspect-brk 进行远程调试应该可以,但显然,出于某种原因,它不再适用于我的设置。
  • 我 double-confirmed 节点版本是 re-installing 使用 nvm 的节点 8 的根本原因,这又带来了失败
  • 由于节点 8 无论如何都不受支持,这可能没问题 - 不幸的是,我使用的发行版仍然将其作为系统默认值。