try readstream nodejs node handling example error custom create catch node.js stack-trace

node.js - handling - readstream nodejs



¿Más de 10 líneas en un error de pila node.js? (4)

La solución más sencilla para eso es comenzar su código con lo siguiente:

Error.stackTraceLimit = Infinity;

Si desea ver el seguimiento de la pila que se extiende sobre las llamadas a setTimeout / setInterval, entonces https://github.com/mattinsler/longjohn más sofisticado sería el camino a seguir.

¿Hay alguna manera de obtener más de 10 líneas en un error de pila 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(); } function l() { k(); } function m() { l(); } function n() { m(); } function o() { n(); } function p() { o(); } function q() { p(); } try { q(); } catch(e) { console.log(e.stack); }

muestra:

$ node debug.js ReferenceError: dieInHell is not defined at a (/Users/julien/tmp/debug.js:2:5) at b (/Users/julien/tmp/debug.js:6:5) at c (/Users/julien/tmp/debug.js:10:5) at d (/Users/julien/tmp/debug.js:14:5) at e (/Users/julien/tmp/debug.js:18:5) at f (/Users/julien/tmp/debug.js:22:5) at g (/Users/julien/tmp/debug.js:26:5) at h (/Users/julien/tmp/debug.js:30:5) at i (/Users/julien/tmp/debug.js:34:5) at j (/Users/julien/tmp/debug.js:38:5)

¿Hay alguna manera de obtener más de 10 llamadas?


Puede pasar el límite de seguimiento de pila como un param de línea de comando al node :

node --stack-trace-limit=1000 debug.js // valor predeterminado 10

Por cierto, otra cosa que parece poco probable que suceda, pero solo desperdicié unas horas de mi tiempo para la depuración, es el tamaño de la pila (que por defecto es 492 kB) . Puede tener errores muy poco informativos si la pila se agota ( RangeError sin información adicional). Puedes aumentar el tamaño de la pila con :

node --stack-size=1024 debug.js // predeterminado 492

En el mundo de los encadenamientos de devolución de llamada a devolución de llamada, de hecho es muy fácil exceder el tamaño de pila para tamaños de entrada grandes, si el programa no está escrito teniendo esto en cuenta.

Para ver todas las opciones relacionadas con la pila:

node --v8-options | grep -B0 -A1 stack


También puede usar el depurador integrado , que abre el depurador de herramientas de desarrollo familiar de Google Chrome. Se detiene ante cualquier error y puede navegar por toda la pila. Solo corre:

$ node --inspect debug.js Debugger listening on port 9229. To start debugging, open the following URL in Chrome: chrome-devtools://devtools/remote/serve_file/...