通过记录函数调用和参数进行实时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上卷读书笔记