使用 cluster.fork() 调试 Node.js 进程

2024-01-03

我有一些代码看起来非常类似于集群文档中的示例:http://nodejs.org/docs/v0.6.0/api/cluster.html http://nodejs.org/docs/v0.6.0/api/cluster.html, 以机智:

var cluster = require('cluster');
var server = require('./mycustomserver');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  var i;
  // Master process
  for (i = 0; i < numCPUs; i++) {
    cluster.fork();
  }
  cluster.on('death', function (worker) {
    console.log('Worker ' + worker.pid + ' died');
  });
} else {
  // Worker process
  server.createServer({port: 80}, function(err, result) {
    if (err) {
      throw err;
    } else {
      console.log('Thread listening on port ' + result.port);
    }
  });
}

我已经安装了 node-inspector 并尝试使用它和 Eclipse V8 插件,详细信息请参见https://github.com/joyent/node/wiki/Using-Eclipse-as-Node-Applications-Debugger https://github.com/joyent/node/wiki/Using-Eclipse-as-Node-Applications-Debugger来调试我的应用程序,但看起来我无法将调试器连接到分叉的集群实例以在有趣的服务器逻辑处放置断点——我只能调试应用程序中生成集群进程的部分。有谁知道我实际上是否可以做这样的事情,或者我是否必须重构我的应用程序以在调试模式下仅使用单个线程?

我是 Node.js 新手,所以我希望我在这里遗漏了一些明显的东西。


var fixedExecArgv=[];
fixedExecArgv.push('--debug-brk=5859');
cluster.setupMaster({ 
  execArgv: fixedExecArgv 
});

信用去往谢尔盖的帖子 http://youtrack.jetbrains.com/issue/WEB-1919.

我改变了我的server.js仅分叉一个工作人员主要用于测试这一点,然后在分叉上方添加代码。这解决了我的调试问题。感谢谢尔盖的解释和提供解决方案!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 cluster.fork() 调试 Node.js 进程 的相关文章

  • 使用 GDB 远程调试 MPI

    我正在尝试从 pi 的远程访问组中调试我使用 MPI 编写的代码 我无法直接访问 Pi 以便能够使用 GUI 来调试代码 我已经尝试过使用屏幕显示的内容question https stackoverflow com questions 3
  • 将 JS 库 xml2js 与 Angular 2 结合使用

    我正在尝试在 Angular 2 带有 TypeScript 的 RC 1 Web 应用程序中使用 xml2js 作为 XML 解析器 但是我只收到一些错误并且没有有效的解决方案 这是我一步一步所做的 通过安装 xml2jsnpm inst
  • 从项目中的任何位置获取socket.io名称空间

    在我的 REST 调用和一些数据库插入之后 我想通过 socket io 向前端发出一个新的通知 如下所示 socket broadcast emit send notification notification 由于我执行此操作的函数是通
  • 找不到模块“node-sass”时出现错误

    配置 macOS High Sierra 版本 10 13 2 节点 v8 1 2 npm 5 0 3 当我在 angularjs 项目中运行 npm start 时 出现以下错误 ERROR in Cannot find module n
  • 少吞咽然后缩小任务

    我必须在 gulp 中执行 2 个步骤 减少 css 文件格式 缩小生成的 css 文件 这是我的吞咽文件 var gulp require gulp watch require gulp watch less require gulp l
  • 它们是“相同的”吗?代码大战

    这是完整的问题描述 给定两个数组 a 和 b 编写一个函数 comp a b Clojure 中的 compSame a b 来检查这两个数组是否具有 相同 元素以及相同的重数 这里 相同 意味着 b 中的元素是 a 平方中的元素 无论顺序
  • VS2017调试错误:评估函数超时,需要中止...

    当我调试代码时 我经常在 Visual Studio 2017 中看到此弹出窗口 这使我无法评估对象 我单击 帮助 按钮并阅读说明要做什么 但是他们建议的选项都没有 这基本上是禁用所有属性评估 这使得调试毫无用处 因为我确实想查看对象或集合
  • 如何在 Next.js 中正确使用 Mongoose 模型?

    我正在使用 TypeScript 和 MongoDB Mongoose 构建 Next js 应用程序 我在使用 Mongoose 模型时开始遇到错误 这导致它们在每次使用模型时都尝试覆盖模型 导致模型覆盖错误的代码 import mong
  • 设置环境变量供节点检索

    我正在尝试遵循教程 它说 有几种加载凭据的方法 从环境变量加载 从磁盘上的 JSON 文件加载 键需要如下所示 USER ID USER KEY 这意味着如果您正确设置环境变量 您 根本不需要管理应用程序中的凭据 根据一些谷歌搜索 我似乎需
  • 调试客户端时使用 Chrome/Firefox

    我正在使用带有 getUserMedia 的相机 但出现了一些需要修复的错误 问题是 Visual Studio 只允许我使用 IE 调试 JavaScript 我的意思是命中断点 而 IE 不支持 getUserMedia 如果您想在 I
  • 如何在Codeblocks中调试?

    我刚刚完成了程序编码 但面临一些逻辑错误 我想调试程序 我正在使用Codeblocks 那么我需要做什么才能在程序运行时查看每个变量的状态和值 并逐行浏览程序 我基本上想做你在 Visual Studio 中做的事情 当你逐行浏览时 每个变
  • 为什么我无法在调试器中编辑包含匿名方法的方法?

    所以 每次我在一个我没有得到的方法中编写 lambda 表达式或匿名方法时quite是的 我被迫重新编译并重新启动整个应用程序或单元测试框架才能修复它 这非常烦人 而且我最终浪费的时间比使用这些构造节省的时间还要多 这太糟糕了 所以我尽可能
  • 重写node.js中其他模块中的函数

    我正在尝试在 Node js 应用程序中使用 nodeunit 存根函数 这是我正在尝试做的事情的简化版本 In lib file js var request require request var myFunc function inp
  • Mongoose:保存时根据父字段值设置子文档字段值

    这几乎肯定在其他地方有所涉及 但是 如果我有一个带有嵌入子文档的单一架构 如下所示 var ChildSchema new Schema name type String trim true user type String trim tr
  • 如何使用socket.io处理节点服务器上的并发文件写入请求

    如何使用 socket io 处理节点服务器上的并发文件写入请求 我用这个来写 fs writefile abc txt datatobewritten utf8 function err 我有一个文件 abc txt 假设两个用户尝试同时
  • 使用 package.json 一起运行节点服务器和 webpack

    我通过学习此视频完成了待办事项应用程序 超级 MEAN 堆栈教程 Angular Node Express Webpack MongoDB SASS Babel ES6 Bootstrap https www youtube com wat
  • Node Red 不会自动加载流

    我已经在我的 raspberry pi 上成功安装了nodered 但问题是每次我编写流程时 我都必须将流程保存到flows raspberrypi json中并重新启动nodered服务器 如何让它自动保存节点 2 可能的事情 1 如果您
  • 如何使用nodeJS SFTP客户端列出所有子目录?

    有趣的节点 JS ssh2 sftp client 我想列出给定路径中的所有目录及其子目录 let sftp new ssh2SftpClient console log sftp sftp connect host xx xxx xxx
  • 无法在 postgres insert 中插入问号

    我正在尝试运行一个简单的 Postgres SQL 插入 insert into Resources values 1 How are you 但插入后的结果是 ID Data 1 How are you 1 我知道 要插入单引号等字符 我
  • Node.js - Async.js:并行执行如何工作?

    我想知道 async js 中并行执行是如何工作的 async require async async parallel function callback for var i 0 i lt 1000000000 i Do nothing

随机推荐