【问题标题】:how to debug Mocha when it continually opens new Debugggers如何在不断打开新的调试器时调试 Mocha
【发布时间】:2023-02-17 23:06:50
【问题描述】:

当我运行 mocha --inspect-brk 时,我一直遇到 Mocha 打开多个调试器的问题。尽管 Chrome 很容易将其节点检查器附加到第一个调试器进程,但它永远不会附加到 Mocha 启动的第二个进程,而 Mocha 只会永远挂起。

如何让 Chrome 继续将检查器附加到 Mocha 启动的所有进程?

例如,我运行 mocha --inspect-brk 并将以下输出打印到我的终端:

Debugger listening on ws://127.0.0.1:9229/xxxx
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
Debugger listening on ws://127.0.0.1:43210/xxxx

虽然 Chrome 很容易附加到 127.0.0.1:9229(您可以在上面的日志中看到 Debugger attached),但它不会附加到 127.0.0.1:43210

【问题讨论】:

    标签: node.js google-chrome-devtools mocha.js


    【解决方案1】:

    当 Mocha 打开带有调试器的进程时,会发生这种情况,而调试器使用 Chrome 的节点检查器尚不知道的端口。在示例中,43210 是 Chrome 不尝试将调试器附加到的端口。

    解决方法如下:

    1. 运行mocha --inspect-brk
    2. 复制永远不会附加调试器的 websocket URL 的主机(在给定的示例中,这将是 127.0.0.1:43210
    3. 打开 Chrome
    4. 在 Chrome 中转到chrome://inspect/#devices
    5. 点击Open dedicated DevTools for Node
    6. 在弹出的新窗口中打开Connection标签(在Console标签旁边)
    7. 点击Add connection
    8. 将复制的主机名(来自第 2 步)粘贴到 Chrome 以建立新连接

      现在 Chrome 会将检查器连接到新进程!如果在 Chrome 未连接到的后续进程中使用任何其他端口号,只需将它们也添加到 Chrome 的节点检查连接列表中。

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 2019-02-19
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      • 2014-10-29
      相关资源
      最近更新 更多