通过记录函数调用和参数实时进行javascript调试

时间:2011-02-07 13:42:43

标签: javascript debugging logging trace control-flow

是否有调试系统允许我记录javascript函数调用及其参数?这将允许我在实时/客户端情况下跟踪和调试应用程序,而不会因手动记录而导致性能下降。

编辑:我不是在谈论使用“控制台”窗口手动调用函数并查看结果,或者手动将“trace”或“log”命令添加到我的javascript中。我需要它来处理任何运行的javascript。

10 个答案:

答案 0 :(得分:18)

你可以覆盖Function.prototype.call并检索参数和arguments.callee吗?

这会产生报告所有功能的效果,因此非常冗长,但也许你想要过滤。

然后你就可以使用if(console)console.log

来报告你想要的报告方式

答案 1 :(得分:3)

你可以看一下http://ajax.dynatrace.com/ajax/en/ - 它只是IE浏览器,但相当不错,请参阅j的这篇文章。 Resig:http://ejohn.org/blog/deep-tracing-of-internet-explorer/> “..dynaTrace提供了一些我以前从未见过的信息 - 在任何浏览器上的任何工具中。”

答案 2 :(得分:2)

@Jenko如果你正在寻找类似于IDE调试器的东西,那么Internet Explorer 8和9有一个内置的开发者工具(按F12),Chrome也有开发人员工具。 IE和Chrome都允许您在代码中设置断点并在其运行时逐步执行。 Firefox有Firebug,其他人已经提到过,它也允许设置断点并检查代码的执行情况。 Opera有Dragonfly(内置),并且具有与其他浏览器相同的功能。

答案 3 :(得分:2)

当我正在阅读答案并嘲笑“你可以使用Firebug!”的重复答案时。我意识到......你可以使用Firebug。

说真的,它有一个“profile”命令,可以完全满足您的要求。 Safari和Chrome具有此功能,因此您也可以在那里办理登机手续。 IE8 / 9有一个类似的“探查器”工具(但我不知道它是否可以通过console.profile()从JavaScript调用)

这将为您提供准确的时间,因为您添加的任何代码和日志记录也会影响实际性能。由于此功能位于顶级浏览器中,因此您可以获得合理数量的数据。

enter image description here

答案 4 :(得分:2)

我发现了火流:https://addons.mozilla.org/en-us/firefox/addon/fireflow/ 非常有帮助。

答案 5 :(得分:0)

如果你在谈论浏览器端的javascript dedub,你可以使用Firebug,这是一个很好的工具。

http://getfirebug.com/

您可以在这里找到分步教程:

http://www.digitalmediaminute.com/screencast/firebug-js/

答案 6 :(得分:0)

是。所有主流浏览器都内置了调试器(IE,Chrome,Safari),或作为附件提供(Firebug for Firefox)。

答案 7 :(得分:0)

Firebug对此有好处。或者您也可以使用Google Chrome的内置调试器。

答案 8 :(得分:0)

for Firefox Firebug 用于IE开发人员工具 对于chrome内置调试器很好用

答案 9 :(得分:0)

可以说最好的在线Javascript代码质量控制是JSLint。它不仅检查代码是否有错误,而且完全改善了程序的编码风格<<这就是作者首先提出的原因。我的0,02 $

http://www.jslint.com/