【问题标题】:No breakpoints are hit with GeddyGeddy 没有命中断点
【发布时间】:2012-03-24 03:57:28
【问题描述】:

我正在评估 node.js 的 Geddy MVC 框架,我看到一个奇怪的问题 - 调试时我的断点都没有被命中。

我正在使用 WebStorm 在调试模式下启动 node.js

我不知道如何使用 CLI 命令让 Geddy 在调试模式下启动,所以我使用的引导程序文件如下所示:

console.log("Starting server...")
var geddy = require("geddy/bin/cli")
console.log("Server started.")

我在所有三行都设置了断点,只有最后一个console.log 被命中,所以至少我知道断点和调试工作正常。

Geddy 在内部 require() 是我的控制器,他们也在多个位置设置了断点。这些永远不会受到影响,但控制器确实可以正常工作,并且 HTTP 请求也可以正常服务。

在 Geddy 中断点不会被命中有什么原因吗?我还能做些什么吗?

【问题讨论】:

  • 也许可以尝试将debugger; 添加到您的源代码中,以代替console.log。 (或之前)这对你有什么改变吗?
  • 不。我认为这个问题可能与 Geddy 在内部使用 cluster 产生新进程的事实有关,而调试器未连接到这些新进程。我试图确认这一点。
  • 我也遇到了同样的情况……有什么偶然的更新吗?

标签: node.js debugging intellij-idea webstorm geddy


【解决方案1】:

我无法验证这一点,但我认为问题是由于cluster 产生了新进程但调试器不知道它们。我还没有找到将调试器附加到新进程的方法,我什至不确定它们是否可以在调试端口打开的情况下启动。

Geddy 使用cluster 所以它继承了这个问题。

这个帖子提到了一个可能的解决方案: (How do I enable --debug for node.js when running GeddyJS)但这对我没有帮助。

【讨论】:

    【解决方案2】:

    Geddy 目前不支持调试,但我们很乐意将其添加为一项功能。

    【讨论】:

    • 这个答案现在已经过时了,看看上面@miguel的答案。
    【解决方案3】:

    Debugging WikiPage 提供了一些有关如何调试 geddy 的信息。

    【讨论】:

      【解决方案4】:

      回答专门针对 Jetbrains WebStorm 或 IntelliJ(使用 Node.js 插件)调试的问题:

      简而言之,设置您的应用,就好像您要在 Heroku 或 Nodejitsu 上进行部署一样。

      package.json

      {
        "name": "geddy_todo",
        "version": "0.0.1",
        "dependencies": {
          "geddy": "0.6.x"
        },
        "engines": {
          "node": "0.8.x",
          "npm": "1.1.x"
        }
      }
      

      接下来你有两个选择

      选项 1. 创建一个运行 geddy 的 app.js。

      app.js

      var geddy = require('geddy');
      
      geddy.start({
        environment: process.env.GEDDY_ENVIRONMENT || 'production'
      });
      

      在 WebStorm/IntelliJ 中,如果您想运行测试,请务必在 Node.js 应用的运行/调试配置中添加环境变量 GEDDY_ENVIRONMENT 并将其设置为“开发”或“测试”。

      选项 2 直接调用 geddy 客户端

      @MiguelMadero 在 cmets 中提到了这个想法。设置您的 WS/IJ 以运行以下命令

      path/to/geddy/bin/cli.js 
      

      【讨论】:

      • 没有必要这样做,简单而不是运行 geddy 来启动你运行 node path/to/geddy/bin/cli.js 并设置通常的调试标志。
      猜你喜欢
      • 2012-06-05
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      • 2015-05-04
      相关资源
      最近更新 更多