【问题标题】:Launch.json - Wait for first debugger to load, then execute secondLaunch.json - 等待第一个调试器加载,然后执行第二个
【发布时间】:2021-04-21 04:06:52
【问题描述】:

我对这样的调试很陌生(我来自 VS 中的 .NET 背景,您几乎无需担心)。

我有一个 Electron / React 设置,一开始我很难设置,但现在它工作得很好。 (根据我的阅读,我并不孤单)

我在 chrome 上使用“devTool”有一段时间没问题,直到我需要断点和逐行调试来处理更复杂的东西,这变得很痛苦。

到目前为止我有这个:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Electron: Main",
            "type": "node",
            "request": "launch",
            "cwd": "${workspaceRoot}",
            "protocol": "inspector",
            "console": "integratedTerminal",
            "runtimeExecutable": "npm.cmd",
            "runtimeArgs": [
                "run-script", "start"
            ],
            "port": 5858
        },
        {
            "name": "Electron: Renderer",
            "type": "chrome",
            "request": "attach",
            "port": 9222,
            "webRoot": "${workspaceRoot}",
            "windows": {
                "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
            }
        }
    ],
    "compounds": [
      {
        "name": "Debug",
        "configurations": ["Electron: Main", "Electron: Renderer"]
      }
    ]
}

两个调试器配置完美。如果我触发“Main”,然后等待它打开,然后触发“Renderer”附加到chrome,它就可以正常工作了。

问题是我是人。我不能足够快地触发第二个,所以如果我有想要调试 onload 的东西,那么我不能。

我制作的“复合”没有按时触发并且触发得太早(我猜是在附加调试器时)。它给了我一条错误消息,说它无法连接到所述端口(这是正常的,因为它尚未加载。

问题是。我如何让它“等待”主要准备就绪。这甚至可行吗?

谢谢,

【问题讨论】:

    标签: reactjs electron vscode-debugger


    【解决方案1】:

    你看过the documentation吗?在 VSCode 之外,您似乎可以使用 --inspect=[port]--inspect-brk=[port] 标志运行 electron 命令。然后,启动 Chrome 并访问 chrome://inspect 并选择启动的 Electron 应用程序。

    看来您的launch.json 可能需要稍微更新一下,这就是that page(在 VSCode 中调试)所说的应该是。我注意到您使用的是workspaceRoot 而不是workspaceFolder

    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Debug Main Process",
          "type": "node",
          "request": "launch",
          "cwd": "${workspaceFolder}",
          "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
          "windows": {
            "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
          },
          "args" : ["."],
          "outputCapture": "std"
        }
      ]
    }
    

    【讨论】:

    • 调试工作。它有点特别,因为我也在使用 react。我需要延迟附加到 chrome,直到它实际启动并准备好附加。如果我等待自己并启动第二次调试,它会起作用。
    猜你喜欢
    • 2020-10-30
    • 1970-01-01
    • 2014-01-04
    • 2019-10-19
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    相关资源
    最近更新 更多