问题标签 [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 回答
708 浏览

pascal - Turbo Pascal 程序的调用图

我正在对一个 18 岁的帕斯卡程序进行一些维护。为了帮助我了解所有内容如何组合在一起,我想绘制一个调用图。但是我找不到任何可以为帕斯卡源绘制调用图的软件。我目前使用的是 Turbo Pascal 7,不知道其他 Pascal 编译器的能力。

0 投票
0 回答
547 浏览

doxygen - 如何在 doxygen 中合并调用和调用者图?

我将两者都CALL_GRAPH设置CALLER_GRAPHYES,并且 doxygen 很乐意为我生成调用图和调用者图,但是是否有将这两个图合并为单个“流”图的命令或技巧?

也就是说,而不是a->BB->c如何得到a->B->c

0 投票
2 回答
1023 浏览

java - Java单元测试执行期间的方法调用列表

我有一种情况,我需要知道从单个 JUnit 测试中调用了哪些方法。例如,如果我有以下伪代码:

UnitTest类的方法调用遵循此顺序(尽管出于我的目的,我不需要保留顺序,也不需要知道调用者的方法):

  1. 单元测试.main
  2. 圆.圆
  3. Circle.getArea
  4. Circle.getRadius

本质上,我想知道在 JUnit 测试中实际执行了程序的哪一部分。我想我可以动态地解决这个问题,但是我很难找到工具或方法。我发现的一些工具的主要问题是它们通常非常直观(需要用户交互来提取所需的数据)。我正在寻找的东西只给我一个没有 GUI 方面的方法列表(xml、文本等)。最后,我试图通过脚本方法为测试套件自动执行此操作。

我正在考虑使用的方法是:

  • 使用 Java 代理在每次方法调用时打印出class.method 。
  • 使用这样的方面进行跟踪

如果有一个工具已经可以做到这一点,那就太好了。如果不是,我是否正在使用我指定的一种方法来解决我的问题。

任何帮助/建议将不胜感激。

UPDATE-SOLVED 我决定使用 Emma 和以下命令来提取方法调用的信息(只需要解析超过 0% 覆盖率的任何方法的报告):

0 投票
2 回答
197 浏览

parsing - 什么是适合代码解析和调用图绘制的语言

我有一个想法来解析一些 C++/C 代码并从中绘制图片(非常像调用图)。但是我可能会画更多的静态图片(其中一些命名的框),但也希望这些框是相关的(连接的),以便最终用户可以调整周围的框,但连接框的线仍然存在。

换句话说,最终目标是用户可以通过调整其中的元素与图表进行交互。

还需要更高级的动画语言/框架支持功能。

我在这里发帖寻找这个想法的最佳语言(C++(在 Microsoft MVC 框架中?)或 python 等)。平台(windows vs. Unix)也是有待确定的。可能Java在这方面也是一个不错的选择..

谢谢!

0 投票
3 回答
3836 浏览

c++ - 在运行时生成 c/c++ 程序的动态调用图

如果要可视化程序的运行,我想应该从获取程序的调用图开始。

但是你如何在运行时获得 c/c++ 程序的调用图呢?

编辑:澄清,我目前正在Linux上运行东西,使用g ++,但我想如果我使用不同的平台,我也对解决方案感到好奇。

0 投票
5 回答
7882 浏览

matlab - 从 matlab src 代码调用图生成

我正在尝试为大约 500 个 matlab src 文件创建一个函数调用图。我找不到任何可以帮助我对多个 src 文件执行相同操作的工具。

有人熟悉任何工具或插件吗?

如果没有任何此类工具可用,欢迎任何关于阅读 6000 行没有文档的 matlab 代码的建议。

0 投票
1 回答
1291 浏览

valgrind - Kcachegrind/callgrind 对于调度程序功能不准确?

我有一个模型代码,kcachegrind/callgrind 报告了奇怪的结果。这是一种调度程序功能。调度员从 4 个地方调用;每个调用都说明要运行哪个实际do_J函数(因此first2只会调用do_1等等do_2

源代码(这是实际代码的模型)

编译gcc -O0; 用valgrind --tool=callgrind; kcache 用kcachegrind和研磨qcachegrind-0.7

这是应用程序的完整调用图。do_J 的所有路径都通过调度程序,这很好(do_1 被隐藏得太快了,但它真的在这里,只是留给 do_2)

满的

让我们重点do_1看看,谁叫它(这张图是不正确的):

在此处输入图像描述

这很奇怪,我认为,只有first2outer2调用do_1但不是全部。

这是 callgrind/kcachegrind 的限制吗?如何获得带有权重的准确调用图(与每个函数的运行时间成正比,无论有无子函数)?

0 投票
2 回答
3670 浏览

c++ - gprof - 文件缺少调用图数据

我刚开始使用 gprof 并尝试生成调用图。我正在使用 cmake 来设置我的 makefile,并且我正在设置 CMAKE_EXE_LINKER_FLAGS = -gp 来启用分析。我启用的唯一 cxx 标志是 -g。

然后我只需在我的 gmon.out 文件上调用 gprof。

生成的输出文件只有一个平面配置文件,其中调用、self ts/call 和 total ts/call 都是空的。

更重要的是,它不会生成调用图。如果我在运行 gprof 以生成调用图时尝试显式提供 -q ,则会显示“文件缺少调用图数据”。

我不确定我在这里做错了什么,并希望得到有关修复此问题的指示。

谢谢。

0 投票
1 回答
1919 浏览

ctags - 使用 ctags 生成调用层次图

有谁知道如何使用ctagscscope生成调用层次图?我需要在终端中运行命令并将输出重定向到文件,而不是在 vim 中执行。

0 投票
3 回答
2031 浏览

multithreading - 可视化多线程 C++ 应用程序调用图、多线程代码覆盖率的工具?

我想知道有没有工具可以

  • 帮助可视化大型多线程应用程序的调用图。
  • 具体来说,我想看看多个线程如何在一个核心上交错/在多个核心上同时执行。
  • 该工具将理想地识别可能的等待/死锁/竞争条件。
  • 最终,我想根据线程在运行时如何相互交互来进行代码覆盖(多线程代码覆盖工具),以便发现潜在的多线程错误。

    如果我没有清楚地解释我的问题,我深表歉意,我很乐意提供任何细节。