在Chrome中,您可以通过在运行时设置标记(使用--js-flags="--stack-trace-limit <value>"
)或通过控制台(使用Error.stackTraceLimit
)来增加堆栈跟踪深度,如下所述:https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi < / p>
根据我的理解,这在Firebug中也是可能的,尽管我并不熟悉该工具的复杂性。
IE11中是否有此规定?我正在处理特定于IE的问题,而堆栈跟踪并没有超出我的库代码(AngularJS)。增加堆栈跟踪深度可能对我有帮助。
谢谢!
答案 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.profile
和console.profileEnd
控制性能分析会话(两者都是相当标准的)。
答案 1 :(得分:2)
我通过在控制台中玩游戏找到了答案 - 我知道有一个Error
对象。事实证明,IE11中的Error
对象支持与Chrome和Firebug相同的stackTraceLimit
属性(我猜他们最终将其标准化)。这可以在控制台中设置,类似于谷歌浏览器(例如:Error.stackTraceLimit = 30
),它将从您设置到下一个导航事件时保持不变 - 返回,前进,在其他任何位置或刷新页面。
stackTraceLimit的默认值为10.
我需要在加载页面时设置此项以调试错误,因此我能够设置早期断点并手动设置Error.stackTraceLimit
。我还没有找到一种方法让它在导航中保持不变,我不知道是否有一个启动标志或任何东西以更永久的方式设置它。 (我假设某个地方有一个注册表项。)
我希望这可以帮助遇到此问题的其他人。值得注意的是,新的IE11工具将自动完成本机对象的属性,这实际上非常好,因此您可以快速查看Error
对象具有的其他属性和方法。 (这实际上是我发现有问题的财产的方式。)