Seguimiento de la pila de excepciones de Javascript


89

En Firefox puedo obtener el seguimiento de la pila de una excepción usando exception.stack.

¿Hay alguna forma de conseguirlo también en otros navegadores?

Editar: en realidad, quiero guardar el seguimiento de la pila automáticamente (si es posible) y no depurarlo en ese momento (es decir, sé cómo obtener el seguimiento de la pila en un depurador).

Respuestas:


73

Coloque esta línea donde desea imprimir el seguimiento de la pila:

console.log(new Error().stack);

Nota: probado por mí en Chrome 24 y Firefox 18

También puede valer la pena echarle un vistazo a esta herramienta .


2
Dulce: uso una combinación de onerror para obtener el número de línea y luego envolver la línea ofensiva con un try catch y su sugerencia para alertar al stacktrace al usuario. `window.onerror = function (message, url, lineNumber) {alert ('mensaje:' + mensaje + '- url:' + url + '- ln:' + lineNumber); devuelve verdadero; }; Luego envuélvalo para imprimir el seguimiento de la pila. `try {// Algún código que está causando la excepción. } captura (e) {alerta (nuevo Error (). pila); } `
Philip Murphy

de alguna manera muere solo me da la primera línea de la pila. ¿¿Qué estoy haciendo mal?? es decir: función foo () {fdasmkl} try {foo ()} catch (e) {err = new Error (e) .stack; console.log (err)} = >>> en Error: ReferenceError: fdasmkl is not defined at <anonymous>:6:7lugar de"Error: ReferenceError: fdasmkl is not defined at eval (eval at <anonymous> (:6:1), <anonymous>:1:1) at <anonymous>:6:1"
chitzui

no importa, encontré el problema. Como ya fue un error, puedo hacer: function foo() { fdasmkl } try { foo() } catch(e) { console.log(e.stack) }inmediatamente
chitzui


2

Si desea el seguimiento de la pila de cadenas, iría con la respuesta de insin : stacktrace.js . Si desea acceder a las partes de un stacktrace (números de línea, nombres de archivos, etc.) stackinfo , que en realidad usa stacktrace.js debajo del capó.


0

No realmente, al menos no fácilmente.

En IE, puede depurar el proceso del navegador con MS Script Debugger (que por alguna razón es un componente de Office) o Visual Studio, y luego puede ver la pila en los puntos de interrupción.


0

Debe probar la buena biblioteca de código abierto TraceKit que intenta crear seguimientos de pila para excepciones de JavaScript no controladas en todos los navegadores principales. Puede leer más sobre Tracekit

https://github.com/csnover/TraceKit/

PD : si está buscando un servicio (usando Tracekit) con una buena interfaz de usuario, puede probar Atatus

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.