Articles of 堆栈跟踪

没有堆栈跟踪茉莉节点错误

我正在使用node.js和jasmine-node npm模块来运行testing。 除非代码产生错误,否则这完美地工作。 我没有堆栈跟踪。 例如,我的一个testing只输出这个: Error: TypeError: Cannot read property 'length' of undefined 没有堆栈跟踪。 这使得我发现这些错误非常耗时,我正在寻找茉莉花节点的替代品。 如何让茉莉花节点输出带有错误的完整堆栈跟踪? –verbose命令行标志不会这样做。

调用node.js中的callback函数

我习惯于在Java中思考,我试图让我的头绕过node.js。 当程序出错时,我的程序需要logging信息,而且我发现我不得不在node.js程序中join很多样板代码,以便在Java中免费获得。 我的问题归结为: 有没有一种更简单/非模板化的方式来获取一系列callback中的类似堆栈的信息? 和/或 我是否无法正确掌握node.js,并试图强制asynchronousnode.js更像是同步Java? Java示例 这是一个尝试(并失败)连接到Mongo数据库的noddy Java程序:import java.net.UnknownHostException; import com.mongodb.Mongo; public class Test { public static void main(final String[] args) throws UnknownHostException { final Mongo mongo = a(); } private static Mongo a() throws UnknownHostException { return b(); } private static Mongo b() throws UnknownHostException { return c(); } private static Mongo c() […]

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 ,但由于一些不可思议的原因,它不捕捉我的段错误。

如何在JavaScript错误中指定“由…引起”?

在我的NodeJS程序中,我parsing了一些用户的JSON文件。 所以我使用: this.config = JSON.parse(fs.readFileSync(path)); 问题是如果json文件格式不正确,抛出的错误是: undefined:55 }, ^ SyntaxError: Unexpected token } at Object.parse (native) at new MyApp (/path/to/docker/lib/node_modules/myApp/lib/my-app.js:30:28) … 因为它不是真正用户友好的,我想抛出一个Error指定一些用户友好的消息(如“你的configuration文件格式不正确”),但我想保留堆栈跟踪,以指向有问题的一行。 在Java世界中,我使用throw new Exception("My user friendly message", catchedException) ,以便有原来的exception,造成这一个。 JS世界怎么可能?

JavaScript:抛出错误时减less堆栈跟踪(指向调用站点)

我有这样的function: function foo() { throw new Error('`foo` has been removed in favor of `bar`') } 当某人调用foo ,我希望堆栈跟踪(错误输出)指向foo的调用位置,而不是foo的throw行。 例如,我得到这个: $ node test.js /home/ubuntu/tmp/test.js:2 throw new Error('`foo` has been removed in favor of `bar`') ^ Error: `foo` has been removed in favor of `bar` at foo (/home/ubuntu/tmp/test.js:2:9) at Object.<anonymous> (/home/ubuntu/tmp/test.js:5:1) … 我怎样才能得到这个呢? $ node test.js /home/ubuntu/tmp/test.js:5 foo() […]

Node.JS:看看为什么进程仍在运行的工具?

有没有办法看到什么超时,间隔或asynchronous操作(或无限循环)仍在运行,并阻止我的过程结束? 到目前为止,我已经能够find这个工具,但是这样的工具非常方便,特别是Node.JS项目开始变得更大。 我正在考虑Java的kill -3打印堆栈跟踪到stderr。 您可以为任何进程,任何时间,debugging或否。 我想要一个等效的Node.JS. (我知道节点是单线程asynchronous,所以它会输出不同)

如何在node.js中logging堆栈跟踪

寻找一个处理堆栈跟踪的node.js包,类似于RoR中的这种做法: Rails:loggingexception的整个堆栈跟踪

如何在node.js中输出深度堆栈跟踪?

当发生正常exception时,输出如下的堆栈跟踪: util.js:38 case '%s': return String(args[i++]); ^ TypeError: Cannot convert object to primitive value at String (unknown source) at util.js:38:25 at String.replace (native) at Object.<anonymous> (util.js:35:23) at Object.<anonymous> (console.js:25:36) at EventEmitter.<anonymous> (/project/src/routines/debug/boot.js:16:21) at EventEmitter.emit (/project/node_modules/eventemitter2/lib/eventemitter2.js:319:22) at /project/src/bootstrap.js:15:14 at /project/src/util/routineloader.js:36:11 at /project/src/util/routineloader.js:47:6 这是非常有帮助的。 当我然后在以下地方做: process.on('uncaughtException', function(err) { console.trace(); throw err; }); 我只得到: Trace: at EventEmitter.<anonymous> (/project/src/routines/debug/exceptions.js:4:17) […]

使用承诺 – 在失败处理程序中logging堆栈跟踪

我对nodejs比较陌生,所以我会更详细地解释一下我正在做的事情。 我有一个networking服务器。 如果请求失败,我想logging该exception的堆栈跟踪,但是传递错误页面而不会使服务器崩溃。 例如,处理请求的函数: var Q = require('q'); var requestHandler = function () { // Here I get the data etc. that was requested. As this is not important, just a dummy here Q.resolve() // Now I answer the request .then(function (data) { // Dummy Code representing the sending of a response console.log('sending response …'); […]

一个node.js堆栈错误超过10行?

有没有办法获得超过10行node.js堆栈错误? function a() { dieInHell(); } function b() { a(); } function c() { b(); } function d() { c(); } function e() { d(); } function f() { e(); } function g() { f(); } function h() { g(); } function i() { h(); } function j() { i(); } function k() { j(); […]