Print current stack trace in JavaScript

Solution 1:

This line of code gets a stack trace and prints it:

console.trace();

Source: https://developer.mozilla.org/en-US/docs/Web/API/Console/trace

Solution 2:

You can get stack trace by creating error and printing its stack property.

var stackTrace = Error().stack;
print(stackTrace); // if print is available
console.log(stackTrace); // if console.log is available
alert(stackTrace); // ditto
var xhr = new XMLHttpRequest(); xhr.open(...); xhr.send(stackTrace); // submit to server
// or do whatever else with the variable

This unlike console.trace() works in all cases, even if console class is not available in your environment. (Of course, if print is not available, you can use console.log or any other function for printing which you have in your environment).

Solution 3:

The documentation says it could be done in the following way:

const targetObject = {};
Error.captureStackTrace(targetObject);
targetObject.stack;  // Similar to `new Error().stack`

This code snippet creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.