使用GCC& amp;埃及 [英] Generating a comprehensive callgraph using GCC & Egypt

查看:138
本文介绍了使用GCC& amp;埃及的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试生成一个综合的调用图(完成对Linux,运行时等的低级调用)。



我已经使用 -fdump-rtl-expand并创建RTL文件,然后将其传递给名为埃及的PERL脚本(我相信它是Graphviz / Dot),并生成该调用图的PDF文件。



除了,有一些调用正在内置库中显示。我正在查看是否有一种方法可以不打印出调用图,而是将真正的调用打印到库中?



请让我知道问题所在尚不清楚。







有人可以建议如果我在笔迹图中有更多的深度吗?


I am trying to generate a comprehensive callgraph (complete with low level calls to Linux, runtime, the lot).

I have statically compiled my source files with "-fdump-rtl-expand" and created RTL files, which I passed to a PERL script called Egypt (which I believe is Graphviz/Dot) and generated a PDF file of the callgraph. This works perfectly, no problems at all.

Except, there are calls being made into some libraries that are getting shown as built-in. I was looking to see if there is a way for the callgraph not to be printed as and instead the real calls made into the libraries ?

Please let me know if the question is unclear.

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

Basically, I am trying to avoid the callgraph from generating < built-in >

Is there a way to do that ?

-------- CODE ---------

#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;
}

I compiled the Cilk Library from source.

解决方案

I might have found the partial solution to the problem:

You need to pass the following option to egypt

--include-external

This produced a slightly more comprehensive callgraph, although there still is the " visible

http://i.imgur.com/GWPJO.jpg?1

Can anyone suggest if I get more depth in the callgraph ?

这篇关于使用GCC&amp; amp;埃及的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆