A JavaScript tool that allows you to debug your JavaScript by giving you a stack trace of function calls leading to an error (or any condition you specify)
Just include stacktrace.js file on your page, and call it like so:
<scripttype="text/javascript" src="https://rawgithub.com/stacktracejs/stacktrace.js/master/stacktrace.js"></script><scripttype="text/javascript">// your code...vartrace=printStackTrace();alert(trace.join('\n\n'));// Output however you want!// more code of yours...</script>You can also pass in your own Error to get a stacktrace not available in IE or Safari 5-
<scripttype="text/javascript" src="https://rawgithub.com/stacktracejs/stacktrace.js/master/stacktrace.js"></script><scripttype="text/javascript">try{// error producing code}catch(e){vartrace=printStackTrace({e: e});alert('Error!\n'+'Message: '+e.message+'\nStack trace:\n'+trace.join('\n'));// do something else with error}</script>Note that error message is not included in stack trace.
Bookmarklet available on the project home page.
You can now have any (public or privileged) function give you a stacktrace when it is called:
functionlogStackTrace(stack){console.log(stack.join('\n'));}varp=newprintStackTrace.implementation();p.instrumentFunction(this,'baz',logStackTrace);functionfoo(){vara=1;bar();}functionbar(){baz();}foo();//Will log a stacktrace when 'baz()' is called containing 'foo()'!p.deinstrumentFunction(this,'baz');//Remove function instrumentationIt is currently tested and working on:
- Firefox (and Iceweasel) 0.9+
- Google Chrome 1+
- Safari 3.0+ (including iOS 1+)
- Opera 7+
- IE 5.5+
- Konqueror 3.5+
- Flock 1.0+
- SeaMonkey 1.0+
- K-Meleon 1.5.3+
- Epiphany 2.28.0+
- Iceape 1.1+
This project is made possible due to the efforts of these fine people:
- Eric Wendelin
- Luke Smith
- Loic Dachary
- Johan Euphrosine
- Øyvind Sean Kinsey
- Victor Homyakov

