Javascript 什么';“这是一个很好的安全插入指令的片段”;几乎所有功能”;使用stacktrace.js?

Javascript 什么';“这是一个很好的安全插入指令的片段”;几乎所有功能”;使用stacktrace.js?,javascript,exception,stack-trace,stacktrace.js,Javascript,Exception,Stack Trace,Stacktrace.js,是一个微库,用于在所有web浏览器中获取堆栈跟踪 它提供以下功能: var p = new printStackTrace.implementation(); p.instrumentFunction(this, 'baz', logStackTrace); function logStackTrace(stack) { console.log(stack.join(' -> ')); } function foo() { var a = 1; bar(); } f

是一个
微库,用于在所有web浏览器中获取堆栈跟踪

它提供以下功能:

var p = new printStackTrace.implementation();
p.instrumentFunction(this, 'baz', logStackTrace);
function logStackTrace(stack) {
    console.log(stack.join(' -> '));
}
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
以安全的方式“测试所有或几乎所有功能”的最佳方式是什么?
基本上,我希望(比如说…在“调试模式”下)能够“自动捕获并记录”所有函数中的所有堆栈跟踪,这些跟踪对仪器来说都是可行的。做这件事的好片段是什么?我应该避免插入哪些函数?

坏主意。在任何实际应用程序中,您都有太多的函数通过使它们都成为报告堆栈跟踪来获取有用的调试信息。请定义“可行”。请注意,堆栈跟踪所有函数是冗余的,因为根据定义,堆栈跟踪打印所有调用的函数,从而导致跟踪函数。所以,如果函数a调用b,b调用c,你将跟踪所有的东西,你会打印出“调用a,调用a,调用b,调用a,调用b,调用c”,这很难理解。相反,您需要的是控制台日志函数。