如何增加Google Chrome开发者工具(或Firefox Firebug)中的调用堆栈条目数?我在第三方控件的Javascript中收到Javascript错误。 “调用堆栈”窗口中的所有调用都不属于我自己的代码。我想知道我的代码中的哪一行触发了事件序列。调用堆栈不够大,无法显示我自己的代码。
答案 0 :(得分:27)
https://github.com/v8/v8/wiki/Stack%20Trace%20API
可以在启动时通过命令行设置--js-flags="--stack-trace-limit <value>"
或在运行时加载页面:Error.stackTraceLimit=undefined //unlimited stack trace
答案 1 :(得分:15)
在Chrome中(也在节点中),您可以在js控制台中输入:
Error.stackTraceLimit = Infinity;
或者,请参阅此页面了解Chrome命令行标记:https://github.com/v8/v8/wiki/Stack%20Trace%20API(需要重新启动Chrome):
$ google-chrome --js-flags="--stack-trace-limit 10000"
答案 2 :(得分:-2)
我认为调用堆栈大小没有限制*)。通常看起来无处不在的堆栈跟踪来自
window.setTimeout
)window.setInterval
)*)当然,从技术上来说肯定存在一些限制,但我猜它实际上是无关紧要的。可能是longint或者什么。
编辑:来自Firebug source code:
if (trace.frames.length > 100) // TODO in the loop above
{
var originalLength = trace.frames.length;
trace.frames.splice(50, originalLength - 100);
var excuse = "(eliding "+(originalLength - 100)+" frames)";
trace.frames[50] = new StackFrame.StackFrame({href: excuse}, 0, excuse,
[], null, null, context);
}
因此,Firebug将始终显示调用堆栈的前50个项目和最后50个项目(“帧”)。