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个项目(“帧”)。