问题标签 [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 投票
2 回答
224 浏览

c++ - 如何从调用图中省略内置函数

我使用 gcc 生成了我的 C/C++ 程序的调用图,但是该图包含许多我不感兴趣的内置函数,例如 strcmp、fprintf 等。是否有任何 gcc 选项可以帮助省略这些类型功能?我知道埃及有一个选项 --omit,但这需要用户指定他们事先知道的函数列表。这意味着如果我想删除上面的所有内置函数,我需要有一个完整的函数列表,我不确定从哪里获得。

谢谢。

0 投票
1 回答
445 浏览

java - java字节码和过程间数据流分析框架的上下文敏感调用图?

在我的项目中,我有两个问题需要解决。

1:我需要一个上下文相关的java调用图(字节码)。这里的上下文是方法的调用栈,即对于同一个方法的不同调用点,调用图包括方法的两个副本,区分不同的调用点。我知道 Paddle 和 Soot 可以做到这一点,但是 Paddle 使用的库仅在 win32 上可用,并且我使用 Win64 来获取大量内存(在我的项目中是必需的)。wala 可以生成这种上下文相关的调用图吗?我应该使用什么工具?

2:我想在我的项目中使用跨过程数据流分析框架。由于我不关注这个话题,我不知道哪个是最合适的工具。我知道 Soot 已经实现了 IFDS/IDE 框架(RHS algorithm popl 1995),但它不是上下文敏感的。WALA 也实现了这一点,我正在对此进行调查。我想知道是否存在 Java 的过程间数据流分析框架的其他实现。也许 jChord 也适合我。

有人可以给我一些建议吗?谢谢你。学生波普尔

0 投票
1 回答
214 浏览

static-analysis - 输出最长调用链的工具

上下文:我正在执行此处描述的分析程序:方法

阻塞点是为正在观察的项目找到“最长的调用链”。什么工具可以用来找到这个?我想这将是一个静态分析工具。

否则,我认为可以为此目的使用调用图生成器。但是,如何推断最长的调用链呢?

0 投票
0 回答
477 浏览

android - 为 android 本机代码构建调用图的工具

我想知道是否有工具可用于为 android 本机 c/c++ 代码构建静态调用图。

或者我可以用什么工具来分析android原生代码的语法?

谢谢!

0 投票
1 回答
928 浏览

c - 生成函数调用图

我正在使用埃及工具来可视化 c 文件的调用图。

使用选项--include-external一可以看到对外部定义的函数的调用(在库、其他项目 .c 文件等中)

我想知道是否有任何方法可以知道在哪个文件中声明了外部函数?不是专门针对工具的,但总的来说,在编译的这个阶段知道要调用的函数的位置是否可行?

0 投票
1 回答
613 浏览

python - 如何从 pycallgraph 中删除库模块或特定函数

我正在使用pycallgraph来分析我的代码性能。但是,调用图非常混乱,有许多对系统函数的调用以及我不想记录的某些函数。如何阻止 pycallgraph 报告这些调用?

0 投票
0 回答
120 浏览

java - 调用图分析:如何确定方法 CA#ma 最终是否调用 CB#mb

假设我有一个包含太多类的 java 项目。有一个入口点方法,它调用其他类中定义的其他方法,这些方法又调用其他方法。

给定一个入口点和目标候选者,我想查看从入口到目标的静态调用图的所有可能子集。

我正在寻找一个工具,最好是一个 Eclipse 插件,可能会利用 JDT。但是使用 .java 源代码也可以。不涉及反射技巧,因此可以忽略那些动态依赖项。

我想回答的问题是,一组方法中的任何一个是否以及如何被另一个方法调用,无论调用堆栈有多远。

0 投票
1 回答
2079 浏览

php - 使用 Doxygen 为 php 文件生成调用图

我正在尝试使用 doxygen 为简单的 php 文件生成调用图。我的设置是:

点在我的路径中,我的 doxygen 配置文件看起来像这样

当我使用我的配置文件运行 doxygen 时,它会生成 html 和 latex 文件夹,但我没有得到任何图形图像。关于我在这里可能做错了什么的任何迹象?

0 投票
2 回答
746 浏览

android - Android 调试跟踪不包含特定于应用程序的方法调用

我正在尝试根据以下文档http://developer.android.com/tools/debugging/debugging使用 Debug.startMethodTracing (在活动 onCreate 上)和 Debug.stopMethodTracing (在活动 onDestroy 上)为应用程序生成跟踪文件-tracing.html#creatingtracefiles

我在物理设备上运行应用程序,它成功创建了跟踪文件。后来我在它们上运行 dmtracedump 以生成调用堆栈图,但它不包含我的任何应用程序方法调用。

为了测试这一点,我创建了一个简单的 Android 应用程序,将 debuggable 添加到清单中:

创建了两个测试类A和B。A类有两个方法b()和c():

B 类有一个方法 c():

最后,在 onCreate 和 onDestroy 方法的主要活动中,我开始了跟踪:

我希望在调用堆栈图中至少获得 Ab() 和 Ac() 方法调用,但在运行之后:

生成的调用图如下:

在此处输入图像描述

这是它应该如何工作,即只显示android调用而不是应用程序方法调用,还是我错过了什么?

请注意,我最感兴趣的是检索方法执行的独占和包含时间。

0 投票
0 回答
1034 浏览

c++ - using clang to generate call graph for a project

I have c and c++ project, and i would like to check for dead function (function that could not be called), for that i want to build a call graph and see which could not be accessed from the written code. for that i want to use clang with the flag "-S -emit-llvm" so i could creat a dot file. im using autoconf to compile the project and the autoconfig dont recognize the file that has been compiled as an executable. tried using this line :

and this

does anyone know the reason? have a suggestions what could i do? thanks