问题标签 [call-graph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
10444 浏览

llvm - 如何使用 LLVM 生成调用图?

我正在研究为 linux 内核生成一个包含函数指针的调用图(有关更多信息,请参阅我之前的问题Static call graph generation for the Linux kernel)。我被告知 LLVM 应该适合这个目的,但是我无法在 llvm.org 上找到相关信息

任何帮助,包括指向相关文档的指针,将不胜感激。

0 投票
0 回答
533 浏览

static - 来自二进制可执行文件的静态调用图

我想知道是否有任何方法可以静态分析 linux 中的二进制文件,并获取所有潜在的调用流/控制流。

本质上类似于 LLVM 和类似编译器给出的静态分析(具有潜在的别名),但来自二进制文件......(即我不需要重新编译等)

谢谢

0 投票
4 回答
18715 浏览

javascript - 如何为给定的javascript生成调用图?

我看过“ https://stackoverflow.com/questions/1385335/how-to-generate-function-call-graphs-for-javascript ”,并尝试过。如果你想得到一个抽象的语法树,它工作得很好。

不幸的是,闭包编译器似乎只提供--print_tree,--print_ast--print_pass_graph. 它们都对我没有用。

我想看看哪个函数调用了其他函数的图表。

0 投票
2 回答
4616 浏览

linux - 使用 GCC 和埃及生成综合调用图

我正在尝试生成一个全面的调用图(完成对 Linux、运行时、很多的低级调用)。

我已经使用“-fdump-rtl-expand”静态编译了我的源文件并创建了 RTL 文件,我将其传递给名为埃及的 PERL 脚本(我相信它是 Graphviz/Dot)并生成了调用图的 PDF 文件。这完美地工作,完全没有问题。

除此之外,有些库被调用,这些库被显示为内置的。我想看看是否有办法不将调用图打印为库中的真实调用?

如果问题不清楚,请告诉我。

http://i.imgur.com/sp58v.jpg

基本上,我试图避免调用图生成 <built-in>

有没有办法做到这一点 ?

- - - - 代码 - - - - -

我从源代码编译了 Cilk 库。

0 投票
0 回答
1127 浏览

java - 查找方法的调用者

我正在尝试检查获取资源的方法是否也释放它。在单个 jar 文件中找出类中方法的调用者的最佳工具是什么?我可以用CheckStyleor做到这一点FindBugs吗?如何?

我想我可以使用BCEL或类似的方法来做到这一点,但我以前从未使用过字节码,而且要花很长时间才能做到这一点。

搜索“java call graph”没有发现任何有用的东西,但这似乎是一个非常基本的功能,所以我可能错过了一个很好的匹配。但是,我不想在这个非常大的项目上生成整个调用图。

0 投票
1 回答
2078 浏览

java - 使用 profiler4j 进行分析

我想使用 profiler4j 来分析我调用 2 个方法的简单 java 程序。我会对调用图视图感兴趣。我按照以下链接运行分析器。

当我尝试运行探查器时

java -javaagent:profiler4j-1.0-beta2/agent.jar test/MainController

我得到了教程链接中显示的输出。但我必须按 ctrl+c 才能再次出现提示。(我使用 linux)然后我尝试运行 console.jar 以查看产生的输出。

但我在输出中看不到任何内容。谁能告诉我我做错了什么?我真的很感激任何帮助。

谢谢。

0 投票
2 回答
1105 浏览

java - 使用 jProfiler 生成调用图

我想使用 jProfiler 生成调用图。我已收到评估版的许可密钥。我想使用 jprofiler 来分析一个简单的网络服务器(jibble miniwebserver)。我正在使用Linux。我从“http://www.ej-technologies.com/download/jprofiler/files.html”下载了 jprofiler_linux_7_1_2.sh 文件,并通过运行下载的 .sh 文件安装了 jprofiler。现在谁能告诉我应该怎么做才能用 jprofiler 运行应用程序服务器?我可以通过此命令(java -jar Simplewebserver.jar)运行应用程序服务器而不进行分析,以及如何使用 jProfiler 运行我的简单 java 程序(有 5 个方法调用)?

我真的很感激任何帮助。

谢谢。

0 投票
1 回答
1424 浏览

java - 可定制的静态 Java 调用图生成器?

我必须重构和维护一堆看起来很糟糕的 Java 类。许多具有以下实现模式

从这里我想生成一个图(使用 Graphviz 和dot)——有点像“静态调用图”,但不完全是。

除了使用 Perl 或 Python 自己解析 Java 代码之外,我在这里玩游戏如何自动执行此操作。

我真正想要的是拥有一个抽象语法树(AST)或类似的东西,我可以浏览并同时打印dot-code。

  • 如何在这里生成可遍历的 AST?我想遍历将在 Java 中完成,但如果输出是任何文本表示形式,那就没问题(gprof想到这里)。
  • 任何其他方法,不使用 AST?也许我只是个盲人,有一种更好、更简单的方法可以做到这一点。
0 投票
2 回答
864 浏览

java - 单个方法的调用图(c++ 和 java)

对于给定的方法(例如 Settings.cpp getSettingByName()),我想构建一个静态调用图。是否有可以为 java 和 c++ 执行此操作的开源工具?

例如,如果我给它“Settings.cpp getMethodByName”,它将返回:

不要对代码感到害怕,这只是一个例子。

非常感谢,菲德尔

0 投票
1 回答
602 浏览

cuda - CUDA 的调用图

我正在尝试为我在埃及的 CUDA 中拥有的代码生成调用图,但通常的方法似乎不起作用(因为 nvcc 没有任何标志可以做与 -fdump-rtl-expand 相同的事情) .

更多细节 :

我有一个非常大的代码(我不是作者),它跨越多个 .cu 文件,如果我有一个调用图,我会更容易理解它在做什么。

我敢打赌,这个问题的答案也对其他人有用。

关于如何使用 cuda (.cu) 文件完成此操作的任何想法?