【问题标题】:Chrome does not detect debugger if attached after process start如果在进程启动后附加,Chrome 不会检测到调试器
【发布时间】:2021-08-16 01:37:15
【问题描述】:

当我使用 --inspect 选项启动 Express 服务器时,我可以导航到 chrome://inspect/#devices 并为适当的远程目标启动调试控制台。但是,当我在没有--inspect 选项的情况下启动进程,然后尝试使用kill -10 $PID 启动检查器时,Chrome 不会检测到远程目标,即使服务器指示调试器已启动。我有什么办法可以通过 Chrome 或其他方式连接到此进程?

这是运行kill -10 $PID后服务器的输出:

Attaching to nodejs
nodejs         | Running version 3 on http://0.0.0.0:5000
nodejs         | Debugger listening on ws://127.0.0.1:9229/c948d085-0491-4cd9-9832-a0f0cf120e11
nodejs         | For help, see: https://nodejs.org/en/docs/inspector

另一个注意事项:我在一个带有 Docker 桥接网络的容器中运行这个应用程序,但我不明白为什么这会有所不同,因为 --inspect 选项注册相同的输出时我用它启动服务器。

版本: Docker 版本 19.03.13,构建 4484c46d9d 节点 v12.22.1 express@4.17.1

附加说明:我描述的过程(在服务器启动后启动调试会话)在此处描述:nodejs.org/en/docs/guides/debugging-getting-started

【问题讨论】:

    标签: node.js express google-chrome web-inspector


    【解决方案1】:

    但是,当我在没有 --inspect 选项的情况下启动进程时,Chrome 不会检测到远程目标

    如果您在没有--inspect 的情况下启动了一个进程,预计您将无法调试您的代码。在删除 --inspect 标志之前,请确保您正在谈论的日志是最新的并且是过去运行中的一些垃圾

    【讨论】:

    • 希望就是这样。容器停止并在每次启动时提供新的日志。我发送 10 命令 (USR1) 并看到添加的日志表明调试器已启动。
    • 您确定在更改后重建了容器吗?
    • 没什么可改变的。在这两种情况下,端口都是从 Docker 文件中公开的。在一种情况下,“检查”标志被传递,我可以立即连接到调试器。另一方面,检查标志未通过,我尝试通过在节点进程启动后向它发送信号来连接,根据此处的文档:nodejs.org/en/docs/guides/debugging-getting-started。服务器日志显示成功,但 Chrome 未检测到该发布。无论如何,我认为我已经通过其他方式实现了更大的目标。谢谢!
    猜你喜欢
    • 2012-03-21
    • 1970-01-01
    • 2023-03-07
    • 2012-04-01
    • 2019-04-30
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多