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

通过记录函数调用和参数进行实时javascript调试,javascript,debugging,logging,trace,control-flow,Javascript,Debugging,Logging,Trace,Control Flow,是否有一个调试系统允许我记录javascript函数调用及其发生时的参数?这将允许我在实时/客户端情况下跟踪和调试应用程序,而不会因为手动日志记录而影响性能 编辑:我不是说使用“控制台”窗口手动调用函数并查看结果,也不是在javascript中手动添加“跟踪”或“日志”命令。我需要它与任何运行的javascript一起工作。如果您谈论的是浏览器端javascript dedub,您可以使用Firebug,这是一个优秀的工具 在这里,您可以找到一个分步教程: 是的。所有主流浏览器都内置了调试器(

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


编辑:我不是说使用“控制台”窗口手动调用函数并查看结果,也不是在javascript中手动添加“跟踪”或“日志”命令。我需要它与任何运行的javascript一起工作。

如果您谈论的是浏览器端javascript dedub,您可以使用Firebug,这是一个优秀的工具

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


是的。所有主流浏览器都内置了调试器(例如,Chrome、Safari),或者作为附加组件(Firefox的Firebug)提供调试器。

Firebug很适合这样做。或者你也可以使用Google Chrome的内置调试器。

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

能否覆盖Function.prototype.call并检索参数和参数。callee

这会对所有函数产生报告的效果,因此会非常冗长,但您可能希望进行筛选

然后你就有了想要如何报告的问题,也许你可以使用if(console)console.log看看——它只是IE,但非常好,见j。Resig:>“.dynaTrace提供了一些我以前从未见过的信息–在任何浏览器上的任何工具中。”

用于Firefox Firebug 对于IE deeloper工具
因为chrome的内置调试器很好用,因为我在阅读答案,并嘲笑重复的答案“你可以使用Firebug!”时,我意识到。。。。你可以使用Firebug

说真的,它有一个“profile”命令,可以完全满足您的要求。Safari和Chrome都有这个功能,所以你也可以在那里登记。IE8/9有一个类似的“profiler”工具(但我不知道是否可以使用console.profile()从JavaScript调用它)

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


可以说最好的在线Javascript代码质量控制是JSLint。它不仅检查代码是否有错误,还完全改进了程序的编码风格我发现fireflow:
难以置信的帮助。

这是一个很棒的主意。很棒的主意,但没有提供GUI!如果我能确认dynatrace捕获了函数调用,我会在那里获得赏金,但在那之前,你的主意是最好的。有人能举个例子吗?如果您在IE或FF中查看这个()实现,当我预计会有两个警报时,只有一个警报。换句话说,如果我使用
myfunction.call()
,这个答案似乎是有效的,但如果我执行
myfunction()
,这个答案就不起作用了。在JSFIDLE之外试试——例如在firebug控制台中。看起来棒极了!没想到这样的事情已经发生这么久了!它在2016年不起作用!Firebug似乎被合并到Firefox开发工具中。我发现了这个黑客:我要试试。