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

Posted

技术标签:

【中文标题】通过记录函数调用和参数进行实时javascript调试[重复]【英文标题】:Live javascript debugging by recording function calls and parameters [duplicate] 【发布时间】:2011-06-22 18:13:54 【问题描述】:

是否有一个调试系统可以让我记录发生的 javascript 函数调用及其参数?这将允许我在实时/客户端情况下跟踪和调试应用程序,而不会因手动记录而影响性能。

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

【问题讨论】:

【参考方案1】:

如果您谈论的是浏览器端的 javascript dedub,您可以使用 Firebug,它是一个出色的工具。

http://getfirebug.com/

您可以在此处找到分步教程:

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

你能覆盖 Function.prototype.call 并检索 arguments 和 arguments.callee 吗?

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

然后你就有了如何报告的问题,也许是 if (console) console.log

【讨论】:

这是个好主意。 好主意,但没有提供 GUI!如果我有一些确认 dynatrace 捕获了函数调用,我会在那里奖励赏金,但在那之前,你是最好的主意。 有人能举个例子吗?如果您在 IE 或 FF 中查看此 (jsfiddle.net/b7Sny) 实现,则只有一个警报,而我预计会有两个警报。换句话说,如果我使用myfunction.call(),这个答案似乎有效,但如果我执行myfunction(),则不会。 在 jsfiddle 之外尝试 - 例如在萤火虫控制台中。【参考方案6】:

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

【讨论】:

看起来棒极了!没想到这样的事情已经存在了这么久!【参考方案7】:

对于 Firefox Firebug 用于IE deeloper工具 chrome内置调试器很好用

【讨论】:

【参考方案8】:

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

说真的,它有一个“配置文件”命令,可以完全满足您的要求。 Safari 和 Chrome 具有此功能,因此您也可以在那里签到。 IE8/9 有一个类似的“分析器”工具(但我不知道它是否可以用 console.profile() 从 JavaScript 调用)

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

【讨论】:

【参考方案9】:

可以说最好的在线 Javascript 代码质量控制是 JSLint。它不仅检查代码是否有错误,它还完全改进了程序的编码风格

http://www.jslint.com/

【讨论】:

【参考方案10】:

我找到了fireflow:https://addons.mozilla.org/en-us/firefox/addon/fireflow/ 非常有帮助。

【讨论】:

2016年不行! Firebug 似乎已合并到 Firefox DevTool 中。我发现了这个 hack:javascriptweblog.wordpress.com/2010/06/01/…,我要试试。

以上是关于通过记录函数调用和参数进行实时javascript调试[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中的this—你不知道的JavaScript上卷读书笔记

JavaScript函数

JavaScript之this

Javascript-回调函数浅谈

深入理解JavaScript系列(34):设计模式之命令模式

[记录] JavaScript 中的函数