Tag: debugging

node.js和Segmentation错误

是否有可能在node.js进入分段错误时检查javascript堆栈跟踪? 目前的情况如下:我正在运行一个脚本,它有几个嵌套的async.eachSeries ,这导致了一个奇怪的原因RangeError: Maximum call stack size exceeded 。 因此,我已经增加了堆栈大小通过node –stack-size=1000000堆栈大小node –stack-size=1000000 ,我留下了分段错误。 以下是脚本的源代码: http : //nopaste.info/ca0c118591.html 更新 我也试过segfault-handler ,但由于一些不可思议的原因,它不捕捉我的段错误。

Node.js:如何远程debugging?

我有一个Linux服务器(操作系统:CentOS,IP:192.168.1.100)与我想要debugging的节点应用程序。 出于某种原因,我必须在远程客户端(ip:192.168.1.7)上工作,因为Linux服务器没有GUI /浏览器。 我没有按照说明使用节点检查器,没有成功… 这是我做的: $ npm –version 2.14.2 $ node –version v4.0.0 $ npm install -g node-inspector $ node-inspector –version Node Inspector v0.12.3 $ node-debug myApp.js Node Inspector is now available from http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 Debugging `myApp.js` Debugger listening on port 5858 然后,如果我打开我的客户端浏览器到http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 ,我得到错误ERR_ADDRESS_UNREACHABLE 。 如果我打开我的客户端浏览器到http://192.168.1.100:8080/?ws=192.168.1.100:8080&port=5858相同的结果。 如果(出于好奇)我打开http://192.168.1.100:5858我只是得到: Type: connect V8-Version: 4.5.103.30 Protocol-Version: 1 Embedding-Host: node v4.0.0 […]

如何debugginggulpfile.js

为了能够debugginggulpfile.js ,执行node-inspector的正确方法是什么? 我试过下面的代码(我的大文件中的代码需要harmony和harmony-arrow-functions switches ): node-debug –nodejs –harmony –nodejs –harmony-arrow-functions /home/user/.npm-packages/bin/gulp default 节点检查器已被正确加载,但不能在加载文件之前或之后在gulpfile中设置断点。 也不可能在gulp/index.js和orchestrator/index.js文件中设置断点。 这是不可能“步入”以下声明( 整个来源 ): gulpInst.start.apply(gulpInst, toRun); 环境: Fedora 21 x64 节点检查器v0.9.2 节点v0.12.0 吞 CLI版本3.8.11 本地版本3.8.11

sails debug命令在Sails.js中不起作用

我正在创build我的第一个sails.js应用程序。 当我尝试 sails debug 我在我的命令提示符下出现以下错误 Debugger listening on port 5858 info: Starting app… error: Grunt :: Error: listen EADDRINUSE at exports._errnoException (util.js:746:11) at Agent.Server._listen2 (net.js:1129:14) at listen (net.js:1155:10) at Agent.Server.listen (net.js:1240:5) at Object.start (_debugger_agent.js:20:9) at startup (node.js:86:9) at node.js:814:3 要使用端口:5858获得进程的PID,我试着运行 C:\Windows\system32>netstat -a -n -o 但不幸的是,没有进程绑定到端口5858.我在这里错过了什么吗? 我使用Windows 8.1与node.js v0.12.0和sails.js 0.11.0

Geddy没有断点

我正在评估node.js的Geddy MVC框架,我看到一个奇怪的问题 – debugging时我的断点没有被打。 我正在使用WebStorm以debugging模式启动node.js。 我不知道如何使用CLI命令在debugging模式下启动Geddy,所以我使用了一个引导文件,如下所示: console.log("Starting server…") var geddy = require("geddy/bin/cli") console.log("Server started.") 我在所有三行设置了一个断点,只有最后一个console.log命中,所以至less我知道断点和debugging工作正常。 Geddy内部require()我的控制器,他们也在几个地方设置了断点。 这些都不会受到影响,但是控制器可以正常工作,并且HTTP请求也可以正常使用。 Geddy中的断点不会有什么原因吗? 还有什么我可以做的吗?

closures时使用require时,不能在函数内部设置断点

使用节点检查器,我无法在下面的node.js代码中设置断点。 ( main.js内容) (function() { require('underscore'); var doSomething = function(callback) { callback('doSomething Finished'); } doSomething(function(x) { console.log(x); }); }).call(this); 我可以很容易地在第2行,第4行或第8行设置一个断点,但是无论我多么努力地尝试debugging器,都不会让我在第5行或第9行设置一个断点。要清楚,我正在使用以下命令运行node-inspector node –debug-brk main.js node-inspector 我也尝试在networking风暴中debugging,但问题依然存在。 如果我删除行require('underscore'); ,那么问题立即消失,我可以在function体内再次设置断点。 如果我删除最外层的闭包函数,问题也会消失。 看来require和文件级别closures之间的交互作用正在破坏节点debuggingfunction。 有没有人自己经历过这个问题,并且/或者知道任何可以打破函数体内部的变通方法? 编辑:我的节点js版本 Tony:~ $ node –version v0.10.12 Tony:~ $

如何debuggingGulp任务?

如何使用debugging器(如Google Chromedebugging器)debugginggulpfile.js定义的gulpfile.js任务, gulpfile.js执行任务的代码?

当debuggingNPM脚本时,WebStormdebugging器不工作,并说退出代码为-1073741510(0xC000013A:被Ctrl + C中断)

我的webstormdebugging器工作正常,如果我直接运行,比如说,我的server.js直接在debugging模式。 但是,当我在debugging模式下运行一个NPM脚本(例如npm start )时,出现以下exception: Process finished with exit code -1073741510 (0xC000013A: interrupted by Ctrl+C) 我使用Webstorm WebStorm 2016.1.2 Build#WS-145.971,构build于2016年5月1日JRE:1.8.0_77-b03 x86 JVM:Oracle HotSpot(TM)服务器虚拟机 我的节点版本是5.11.0 我运行它的Windows 7,我的同事运行Windows 10的同样的问题。 有没有人遇到过这个问题呢?

在subprocess上使用Node.js命令行debugging器?

我使用Node客户端debugging器,如下所示: 节点debuggingmyscript.js 但是这个过程会产生一个孩子使用: var child = require(“child_process”)。fork(cmd,args); 有没有办法让这个孩子也可以在“debugging”模式下启动?

如何在不影响性能的情况下将详细日志logging代码添加到函数中?

对于我正在编写的某个课程,performance很重要。 我想过调用一个这样的函数: debug('This is a debug message, only visible when debugging is on'); 内容会是这样的 function debug(message) { if (DEBUG) console.log(message); } 所以我想知道:如果DEBUGvariables永远不会改变,V8是否足以将其标记为“死代码”? 编辑:我更担心节点比在浏览器的性能,所以在缩小的时候删除代码是不够的。 编辑2:我提出了一个JSPerf基准testing的解决scheme,他们是非常令人惊讶的: http : //jsperf.com/verbose-debug-loggin-conditionals-functions-and-no-ops/3