Google Chrome Developer Tools(或Firefox)中如何增加Call Stack条目的数量?
Google Chrome Developer Tools(或Firefox Firebug)中如何增加Call Stack条目的数量? 我在第三方控件的Javascript中得到一个Javascript错误。 “调用堆栈”窗口中的所有调用都不属于我自己的代码。 我想知道我的代码中的哪一行触发了事件序列。 调用堆栈不够大,无法显示自己的代码。
Chrome解决scheme
https://github.com/v8/v8/wiki/Stack%20Trace%20API
可以在启动时通过命令行设置--js-flags="--stack-trace-limit <value>" 
 或者在运行时加载一个页面: Error.stackTraceLimit=undefined //unlimited stack trace 
在Chrome中(也在节点中),您可以在js控制台中键入以下内容:
 Error.stackTraceLimit = Infinity; 
或者,请查看此页面以查看Chrome命令行标志: https : //github.com/v8/v8/wiki/Stack%20Trace%20API (需要重新启动Chrome):
 $ google-chrome --js-flags="--stack-trace-limit 10000" 
我不认为有调用堆栈大小的限制*)。 通常情况下,堆栈跟踪似乎是无处不在的
- 一个事件监听器
-  超时( window.setTimeout)
-  一个区间( window.setInterval)
- 页面加载后的一些脚本加载(可能是iframe)
*)当然,技术上肯定有一定的限制,但是我觉得它实际上是不相关的。 可能longint什么的。
编辑:从Firebug源代码 :
  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个项目(“帧”)。