104

In Firefox I can get the stack trace of an exception by using exception.stack.

Is there a way to get that in other browsers, too?

Edit: I actually want to save the stack trace automatically (if possible) and not debug it at the time (i.e. I know how to get the stack trace in a debugger).

4 Answers 4

91

Place this line where you want to print the stack trace:

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

Note: tested by me on Chrome 24 and Firefox 18

May be worth taking a look at this tool as well.

Sign up to request clarification or add additional context in comments.

3 Comments

Sweet - I use a combination of onerror to get the line number and then wrap the offending line with a try catch and your suggestion to alert the stacktrace back to the user. ` window.onerror = function(message, url, lineNumber) { alert('message: ' + message + ' - url: ' + url + ' - ln: ' + lineNumber); return true; }; ` Then wrap it to print out the stacktrace. ` try { // Some code that is causing the exception. } catch(e) { alert(new Error().stack); } `
somehow dies only gives me the first line of the stack. What am I doing wrong?? i.e.: function foo() { fdasmkl } try { foo() } catch(e) { err = new Error(e).stack; console.log(err) } =>>> Error: ReferenceError: fdasmkl is not defined at <anonymous>:6:7 instead of "Error: ReferenceError: fdasmkl is not defined at eval (eval at <anonymous> (:6:1), <anonymous>:1:1) at <anonymous>:6:1"
nevermind, found the issue. Since it was an error already, I can do: function foo() { fdasmkl } try { foo() } catch(e) { console.log(e.stack) } immediately
24

Webkit now has functionality that provides stack traces:

Web Inspector: Understanding Stack Traces, posted by Yury Semikhatsky on Wednesday, April 20th, 2011 at 7:32 am (webkit.org)

From that post:

2 Comments

Much more convenient than creating an exception just to view its stack.
The link is broken, but I think there is a copy here pjh0718.blogspot.com/2016/02/…
3

If you want the string stack trace, I'd go with insin's answer: stacktrace.js. If you want to access the pieces of a stacktrace (line numbers, file names, etc) stackinfo, which actually uses stacktrace.js under the hood.

Comments

0

Not really, at least not easily.

In IE, you can debug the browser process with MS Script Debugger (which for some reason is an Office component) or Visual Studio, and then you can see the stack on breakpoints.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.