IE11控制台:增加堆栈跟踪深度

时间:2013-12-27 21:32:05

标签: stack-trace internet-explorer-11 console.log chakra

在Chrome中,您可以通过在运行时设置标记(使用--js-flags="--stack-trace-limit <value>")或通过控制台(使用Error.stackTraceLimit)来增加堆栈跟踪深度,如下所述:https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi < / p>

根据我的理解,这在Firebug中也是可能的,尽管我并不熟悉该工具的复杂性。

IE11中是否有此规定?我正在处理特定于IE的问题,而堆栈跟踪并没有超出我的库代码(AngularJS)。增加堆栈跟踪深度可能对我有帮助。

谢谢!

2 个答案:

答案 0 :(得分:4)

似乎没有提供此控件的文档Command Line Option。但是,您可以像在其他流行的浏览器中一样增加Internet Explorer中的堆栈跟踪:

Error.stackTraceLimit = 20; // The default is 10

从版本10开始,Internet Explorer在Error构造函数上支持此属性。它在之前的版本中不起作用。 2012年,IEBlog demonstrated对此属性进行了一些示例使用,以及使用Error.stack

似乎没有办法为所有网页请求保留此设置。我在这里建议的唯一选择是设置一个代理,将其添加到所有服务器响应中。我自然会鼓励Fiddler

与其他浏览器一样,Internet Explorer 11支持console.trace。因此,您无需等待错误即可获得堆栈跟踪。您可以随时任意调用它。

要看的最后一个功能是profiling。如果您希望仅捕获应用程序生命周期的特定片段,则可以通过console.profileconsole.profileEnd控制性能分析会话(两者都是相当标准的)。

答案 1 :(得分:2)

我通过在控制台中玩游戏找到了答案 - 我知道有一个Error对象。事实证明,IE11中的Error对象支持与Chrome和Firebug相同的stackTraceLimit属性(我猜他们最终将其标准化)。这可以在控制台中设置,类似于谷歌浏览器(例如:Error.stackTraceLimit = 30),它将从您设置到下一个导航事件时保持不变 - 返回,前进,在其他任何位置或刷新页面。

stackTraceLimit的默认值为10.

我需要在加载页面时设置此项以调试错误,因此我能够设置早期断点并手动设置Error.stackTraceLimit。我还没有找到一种方法让它在导航中保持不变,我不知道是否有一个启动标志或任何东西以更永久的方式设置它。 (我假设某个地方有一个注册表项。)

我希望这可以帮助遇到此问题的其他人。值得注意的是,新的IE11工具将自动完成本机对象的属性,这实际上非常好,因此您可以快速查看Error对象具有的其他属性和方法。 (这实际上是我发现有问题的财产的方式。)