Skip to content

nirgal/stacktrace.js

 
 

Repository files navigation

Welcome to stacktrace.js! Code Climate

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)

Usage

Just include stacktrace.js file on your page, and call it like so:

<script type="text/javascript" src="https://rawgithub.com/stacktracejs/stacktrace.js/master/stacktrace.js"></script>
<script type="text/javascript">
    // your code...
    var trace = 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-

<script type="text/javascript" src="https://rawgithub.com/stacktracejs/stacktrace.js/master/stacktrace.js"></script>
<script type="text/javascript">
    try {
        // error producing code
    } catch(e) {
        var trace = 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.

Function Instrumentation

You can now have any (public or privileged) function give you a stacktrace when it is called:

function logStackTrace(stack) {
    console.log(stack.join('\n'));
}
var p = new printStackTrace.implementation();
p.instrumentFunction(this, 'baz', logStackTrace);

function foo() {
    var a = 1;
    bar();
}
function bar() {
    baz();
}
foo(); //Will log a stacktrace when 'baz()' is called containing 'foo()'!

p.deinstrumentFunction(this, 'baz'); //Remove function instrumentation

Get stacktrace.js

npm install stacktrace-js
bower install stacktrace-js
component install stacktrace.js
wget https://rawgithub.com/stacktracejs/stacktrace.js/master/stacktrace.js

Browser Support

It 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+
  • PhantomJS

Contributions Stories in Ready

This project is made possible due to the efforts of these fine people:

About

Framework-agnostic, micro-library for getting stack traces in all web browsers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy