【问题标题】:How to increase number of Call Stack entries in Google Chrome Developer Tools (or Firefox)?如何在 Google Chrome 开发者工具(或 Firefox)中增加调用堆栈条目的数量?
【发布时间】:2012-04-13 10:59:32
【问题描述】:

如何在 Google Chrome 开发者工具(或 Firefox Firebug)中增加调用堆栈条目的数量?我在第三方控件的 Javascript 中收到 Javascript 错误。 Call Stack 窗口中的所有调用都不属于我自己的代码。我想知道我的代码中的哪一行触发了事件序列。调用堆栈不够大,无法显示我自己的代码中的内容。

【问题讨论】:

标签: javascript google-chrome firebug google-chrome-devtools


【解决方案1】:

我认为调用堆栈大小没有限制*)。通常,堆栈跟踪似乎无处不在

  • 事件监听器
  • 超时 (window.setTimeout)
  • 一个区间 (window.setInterval)
  • 页面加载后加载一些脚本(可能是 iframe)

*) 当然,技术上肯定有一些限制,但我想这实际上是无关紧要的。可能是 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 项(“帧”)。

【讨论】:

  • 你错了。有一个最大堆栈大小,这非常重要。不适用于以异步方式编写的东西-但更多例如为口译员。在使用 Lisp 解释器时,我在 Chrome 中遇到了这个问题(最大堆栈大小比 Firefox 小得多)。大多数情况下,最好的办法是更改您的 JavaScript,使其异步运行(并通过setTimeout 对处理进行切片)。也就是说 - 对于第三方脚本,我真的不知道如何解决它。
【解决方案2】:

铬解决方案

https://v8.dev/docs/stack-trace-api

可以在启动时通过命令行设置--js-flags="--stack-trace-limit <value>"

或在运行时加载页面:Error.stackTraceLimit=undefined //unlimited stack trace

【讨论】:

  • 你能显示完整的命令吗?我试过open -a Google\ Chrome --args --js-flags="--stack-trace-limit 50",但堆栈跟踪仍然停在 10
  • 如果您打开 chrome 开发控制台,您只需键入 '''Error.stackTraceLimit''',它就会显示当前值。然后,您可以根据需要对其进行修改。
  • Error.stackTraceLimit=50
  • 设置Error.stackTraceLim‌​it 不再起作用。
  • 设置 Error.stackTraceLim‌​it 属性适用于 Chrome 60。在 Ubuntu 上运行。
【解决方案3】:

在 Chrome 中(也在 node 中),您可以在 js 控制台中键入:

Error.stackTraceLimit = Infinity;

或者查看此页面以获取 Chrome 命令行标志:https://v8.dev/docs/stack-trace-api(需要重新启动 Chrome):

$ google-chrome --js-flags="--stack-trace-limit 10000"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 2018-08-15
    • 1970-01-01
    • 2023-03-28
    • 2014-04-29
    • 2011-09-04
    • 2015-02-01
    相关资源
    最近更新 更多