您是否知道一个集成工具,它将从Python源生成函数的调用图?我需要一个一致的,可以在Windows操作系统上运行的.
有没有办法创建一个可以合理地适合页面的clang调用图?
即给出:
#include<iostream>
using namespace std;
int main()
{
int a;
cin>>a;
cout<<a;
cout<<a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我目前得到 
通过使用:
$ clang++ main.cpp -S -emit-llvm -o - |
opt -analyze -std-link-opts -dot-callgraph
$ cat callgraph.dot | c++filt |
sed 's,>,\\>,g; s,-\\>,->,g; s,<,\\<,g' |
gawk '/external node/{id=$1}$1!=id' | dot -Tpng -ocallgraph.png
Run Code Online (Sandbox Code Playgroud)
(这似乎是很多努力去做一些我不希望这么困难的事情).我想在横轴上得到一些更合理的东西.Unflatten似乎没有任何影响(至少在这个文件上,对其他文件似乎影响很小).
有没有办法确保png生成的文件可以舒适地适合页面(任何标准大小)?
注意:上面的代码来自生成C++代码的调用图
更新:设置页面="8.5,11"给出以下内容:

寻找一种工具:
无法完成此任务的工具包括:
有任何想法吗?
我已经安装了 Intel Vtune Analyzer 9,以便从配备 AMD Turion X2 TL-58 处理器的 Windows 7 PC 上的 win32 应用程序获取调用图和计数器监控数据,但它给出错误:“CPU 架构不能正确识别后,无法收集数据”。AMD 平台有类似的工具吗?
我想编写一个规则,如果在由特定属性标记的方法调用的任何方法中进行对象分配,则该规则将失败.
到目前为止,我已经完成了这项工作,通过迭代调用我的方法来检查使用的所有方法CallGraph.CallersFor(),看看这些父方法中是否有任何属性.
这适用于检查与要检查的方法相同的程序集中的父方法,但是在线阅读时,似乎一次CallGraph.CallersFor()确实查看了所有程序集,但现在却没有.
问题:有没有办法获取调用给定方法的方法列表,包括那些在不同程序集中的方法?
替代答案:如果无法实现上述目标,我如何遍历给定方法调用的每个方法,包括不同程序集中的方法.
例:
-----In Assembly A
public class ClassA
{
public MethodA()
{
MethodB();
}
public MethodB()
{
object o = new object(); // Allocation i want to break the rule
// Currently my rule walks up the call tree,
// checking for a calling method with the NoAllocationsAllowed attribute.
// Problem is, because of the different assemblies,
// it can't go from ClassA.MethodA to ClassB.MethodB.
}
}
----In Assembly B …Run Code Online (Sandbox Code Playgroud) 如果要想象一个程序的运行,我想一个人可以从获取程序的调用图开始.
但是如何在运行时获得c/c ++程序的调用图?
编辑:说明,我目前在linux上运行,使用g ++,但我想如果我使用不同的平台,我也对解决方案感到好奇.
我最近加入了一个包含大量代码的项目,我想开始通过调用图来记录和可视化一些流程,以便更好地理解所有内容如何组合在一起.这是我希望在理想工具中看到的内容:
这种工具的交互使用是关键,我不是在寻找Graphviz类型的解决方案,因为会有太多的混乱.形成整个图形的子集视图的能力将非常方便(可能具有不重要的混乱灰色).不需要从源代码自动生成,很乐意手动输入.
几乎像一张思维导图.
那有意义吗?如果您不了解这样的工具,您是否也认为它会有用?(以防我有一天决定去刮痒!)
是否有人知道如何使用ctags和cscope生成调用层次结构图?我需要在终端中运行命令并将输出重定向到文件,而不是在vim中执行.
我正在编写一个工具,我需要为一些C项目生成调用图.我能够使用clang生成一个文件的调用图,但是我无法找到如何在整个项目中生成包含数十个头文件和源文件的调用图.
任何可以生成可解析文件的调用图的工具都可以.一个可用的库会更好.