【问题标题】:Is there a (static) JavaScript function call trace tool?是否有(静态)JavaScript 函数调用跟踪工具?
【发布时间】:2013-10-14 11:57:21
【问题描述】:

我的 JS 代码越来越大,越来越老。这意味着,在处理其他项目时,我倾向于忘记调用函数的所有序列。我想知道是否有一个工具可以解析我的 .js 文件并生成一个(简单)文档,其中每个函数都列出了它调用的所有其他函数。这只是静态源代码分析;我不需要它在运行时做任何事情。

过度简化的例子:

function firstFunction(){
    ...
    secondFunction();
    thirdFunction(); 
}

function secondFunction(){
    ...
    thirdFunction(); 
}

function thirdFunction(){
    ...
    secondFunction();
    firstFunction(); 
}

生成的(文本)文档将简单地列出函数调用(我不关心格式):

firstFunction: secondFunction, thirdFunction 
secondFunction: thirdFunction
thirdFunction: secondFunction, firstFunction

编辑:请注意,我不想更改我的代码;我有几十个函数,其中一些调用了超过 10-15 个其他函数;在每个函数调用之前或之后打印消息需要很长时间,无论是编写还是运行每个场景。

EDIT no.2:我可以通过选择每个函数名称并在文件中搜索该名称的实例来使用任何基本的文本编辑器来做到这一点;这种方法需要的时间和脑细胞比我现在所能承受的要多得多;自动化工具会很完美。

【问题讨论】:

  • 有一个叫做 console.log 的东西,你可以在其中将字符串记录在 javascript 中,将你的字符串记录到浏览器控制台。注意 IE7 及以下没有控制台对象,可能会抛出错误。你也需要注意这一点。
  • @AkshayKhandelwal console.log 要求我修改现有代码。我希望它“离线”工作,而 console.log 则要求我处理所有可能的情况。
  • @LightStyle 我不需要在运行时记录任何内容。我需要的是更像文档的东西。我不在乎代码是否正确,或者它是否在浏览器中中断。我需要一份可以反复阅读甚至打印的文件。

标签: javascript static-code-analysis


【解决方案1】:

console.trace() 在 Google Chrome 上运行良好。另外console.log()也很方便,当console.log()被调用时,stacktrace也会显示出来。

【讨论】:

  • 这不是 OP 要求的。请重新阅读问题。
  • 我需要一些静态的东西来解析代码。我需要花费大量时间来记录函数调用,因为我有数十个相互引用的函数。我尽量不要触摸代码。
猜你喜欢
  • 2011-06-19
  • 2010-09-23
  • 2014-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-25
  • 2018-10-26
  • 1970-01-01
相关资源
最近更新 更多