我正在尝试生成一个全面的调用图(包括对 Linux、运行时等的低级调用)。
我使用“-fdump-rtl-expand”静态编译了我的源文件并创建了 RTL 文件,我将其传递给名为 Egypt 的 PERL 脚本(我认为是 Graphviz/Dot)并生成了 callgraph 的 PDF 文件。这工作完美,没有任何问题。
除此之外,对一些显示为内置的库进行了调用。我想看看是否有一种方法可以使调用图不打印为对库的实际调用?
如果问题不清楚,请告诉我。
https://i.stack.imgur.com/WWoAC.jpg https://i.stack.imgur.com/WWoAC.jpg
基本上,我试图避免调用图生成
有没有办法做到这一点 ?
- - - - 代码 - - - - -
#include <cilk/cilk.h>
#include <stdio.h>
#include <stdlib.h>
unsigned long int t0, t5;
unsigned int NOSPAWN_THRESHOLD = 32;
int fib_nospawn(int n)
{
if (n < 2)
return n;
else
{
int x = fib_nospawn(n-1);
int y = fib_nospawn(n-2);
return x + y;
}
}
// spawning fibonacci function
int fib(long int n)
{
long int x, y;
if (n < 2)
return n;
else if (n <= NOSPAWN_THRESHOLD)
{
x = fib_nospawn(n-1);
y = fib_nospawn(n-2);
return x + y;
}
else
{
x = cilk_spawn fib(n-1);
y = cilk_spawn fib(n-2);
cilk_sync;
return x + y;
}
}
int main(int argc, char *argv[])
{
int n;
long int result;
long int exec_time;
n = atoi(argv[1]);
NOSPAWN_THRESHOLD = atoi(argv[2]);
result = fib(n);
printf("%ld\n", result);
return 0;
}
我从源代码编译了 Cilk 库。
我可能已经找到了部分解决方案问题:
您需要将以下选项传递给埃及
--include-external
这产生了一个稍微更全面的书法,尽管仍然有“可见”
https://i.stack.imgur.com/aj18x.jpg https://i.stack.imgur.com/aj18x.jpg
谁能建议我是否对调用图有更深入的了解?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)