使用 GCC 和 Egypt 生成综合调用图

2024-01-01

我正在尝试生成一个全面的调用图(包括对 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(使用前将#替换为@)

使用 GCC 和 Egypt 生成综合调用图 的相关文章

  • 如何正确初始化“min”变量?

    我的代码中有一个小问题 用于从一系列数字中查找最小值 当我初始化时min 0 最小值结果为0 但是当我不初始化时min 答案是正确的 为什么会出现这种情况 Xcode 告诉我应该初始化min多变的 int a 20 0 int max 0
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include
  • tcpdump 是否受 iptables 过滤影响?

    如果我的开发机器有iptables规则到FORWARD一些数据包 这些数据包是否被 tcpdump 捕获 我有这个问题 因为我知道存在其他链称为INPUT如果数据包路由到 它会过滤发往应用程序的数据包FORWARD链 它会到达吗tcpdum
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • Linux 上的 Pervasive ODBC 错误 [01000][unixODBC][驱动程序管理器]无法打开 lib '/usr/local/psql/lib/odbcci.so':找不到文件

    我正在尝试让 Pervasive v10 客户端 ODBC 在 Centos 6 上运行 据我所知 没有 64 位 ODBC 客户端 因此我必须使用 32 位客户端 我终于成功安装了它 但尝试使用时出现以下错误 isql v mydsn 0
  • 有没有办法用 gcc 查询直接模块依赖关系?

    给定一个模块 a m cc export module A import B import C import D h 有没有一种调用 gcc 的方法 类似于 M 对标头所做的操作 来列出对其他模块和导入标头 即 B C 和 D h 的直接依
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • 为什么 fopen("any_path_name",'r') 不给出 NULL 作为返回值?

    在调试一些代码时 我得到如下内容 include
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • 与 pthread 的进程间互斥

    我想使用一个互斥体 它将用于同步对两个不同进程共享的内存中驻留的某些变量的访问 我怎样才能做到这一点 执行该操作的代码示例将非常感激 以下示例演示了 Pthread 进程间互斥体的创建 使用和销毁 将示例推广到多个进程作为读者的练习 inc
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • 如何在 Mac OSX Mavericks 中正确运行字符串工具?

    如何在 Mac OSX Mavericks 中正确运行字符串工具 我尝试按照我在网上找到的示例来运行它 strings a UserParser class 但我收到此错误 错误 Applications Xcode app Content
  • 用于优化的编译器提示和语义[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我花了几周时间优化数值算法 通过预计算 内存对齐 编译器提示和标志以及反复试验的组合 我将运行时间缩短了一个数量级 我尚未使用内在函数
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序

随机推荐

  • 如何在 Qemu 下启动 FreeBSD 镜像

    我有一个 FreeBSD 映像 其中包含 boot loader 和 boot kernel 等 它在 EC2 实例下启动正常 但我想使用 Qemu 启动它 我尝试过各种方法 但都没有效果 见下文 qemu system x86 64 ke
  • 将列表项映射到带有参数的函数

    有什么方法可以将列表项与参数一起映射到函数吗 我有一个清单 pages p1 p2 p3 p4 p5 我必须调用函数myFunc对应于每个列表元素以及附加参数 以便可以计算以下内容 myFunc p1 additionalArgument
  • 扩展 Handlebars.js 模板

    有没有像 Django 那样扩展模板的方法 我的基本模板有一个只需几页的标题 我想为其他模板更改它 类似的东西 extends base html endblock 我正在使用 Ember js 据我所知 这个符号不存在 我也没有在车把模板
  • 带 Boost 的 Node-gyp 包含和库目录

    我正在尝试在我的 Windows 7 计算机上构建一个 Node C 插件 该插件使用 Boost 库中的一些类 然而 运行后 node gyp configure 成功了 当我运行时 我不断受到缺少头文件的攻击 node gyp buil
  • WPF 共享资源字典

    我已经使用自定义类在我的 WPF 应用程序中实现共享资源功能 这是创建和管理字典的示例代码 public class SharedResourceDictionary ResourceDictionary
  • 如何在 UIButton 上制作原生“脉冲效果”动画 - iOS

    我希望在 UIButton 上有某种脉冲动画 无限循环 缩小 缩小 以便它立即引起用户的注意 我看到了这个链接如何使用 webkit animation 向外环创建脉冲效果 https stackoverflow com questions
  • Rails 4 + 引导程序设置资产

    我正在尝试设置引导程序 on Rails4 using bootstrap sass我收到了这个著名的错误 Sprockets FileNotFound couldn t find file bootstrap in app assets
  • 产品目录API失败

    需要帮忙 我尝试从https developers facebook com docs marketing api dynamic product ads ads management v2 3创建的帐户 批准者为phone 创建了企业帐户
  • SKShader 创建视差背景

    使用固定相机的视差背景很容易做到 但由于我正在制作一个自上而下的视图 2D 空间探索游戏 我认为有一个 SKSpriteNode 填充屏幕并作为我的 SKCameraNode 的子级并使用 SKShader 绘制一个视差星空会更容易 我继续
  • 为什么将带有尾随空格的行提交到源代码管理中是不好的?

    为什么将带有尾随空格的行签入到源代码管理中是不好的 这会导致什么类型的问题 基本上是错误的差异 如果差异仅显示 真实 更改 则会很有帮助 一些 diff 程序会忽略空格 但最好首先避免虚拟更改 当然 如果它在同事的机器上换行也无济于事
  • 第三方广告提供商的广告如何传送到网页?

    当网页加载到浏览器中时 第三方广告提供商如何决定向网页投放什么广告 这些数据以什么格式传送 假设我的网页不包含与广告相关或差异化的内容 但我确实了解我的用户的很多信息 人口统计资料 兴趣 浏览历史记录等 因此 我想要加载的广告必须依赖于用户
  • 如何使 iframe 适合整个屏幕而不指定尺寸?

    如果我不指定任何尺寸 iframe 就会显得很小 如果我确实按如下方式指定尺寸 则它无法针对不同的屏幕分辨率正确缩放 有没有办法自动让 iframe 拉伸到整个屏幕 Use
  • 如何在 SBT 构建中跳过测试?

    我有一个 SBT 0 7 5 项目 它的一些测试用例失败了 在修复所有测试用例之前 我想跳过测试来生成 JAR 是否有任何命令行参数告诉 SBT 跳过所有测试 例如 Maven 的 Dmaven test skip true flag 我遇
  • 在主线程之外创建 QDialog 的方法

    我正在尝试在 QT 中创建一个客户端应用程序 它需要两个线程进行处理和可变数量的窗口实例 但我很难弄清楚如何在处理线程之一内创建一个新窗口 我知道所有 ui 元素必须在与 QApplication 类相同的线程中创建 但我需要能够实例化 或
  • 如何使用 git fetch 覆盖本地标签?

    如何使用 git fetch 覆盖本地标签 我想用远程标签替换本地标签 从 Git 2 20 开始 您需要显式指定强制标志 git fetch origin tags force 在 Git 版本 2 20 之前 与使用 git push
  • 推送“未签出”分支

    我想推送一个分支 不是当前的 而不必先检查它 我怎样才能实现这一点 这就是我要做的 currently in master git checkout feature git push origin feature git checkout
  • seaborn boxplot:更改均值的颜色和形状

    我似乎找不到答案的简单问题 如何更改 Seaborn 箱线图中平均指标的颜色和形状 它默认为绿色三角形 通常很难看到 我试图在 seaborn 文档和 matplotlib 文档中找到答案 stackoverflow 上还有一个相关问题 有
  • Foundation 5、Simple Form 和 Rails - 如何让“提示”CSS 类正常工作

    我已经搜索了几天并进行了实验 但我无法获得要显示的简单表单 gem 提示 CSS 类 这只是一个类 当您将鼠标悬停在表单输入上时显示表单输入的提示 我正在使用 Rails 4 1 以及最新的 simple form gem 和 Founda
  • Java api 到 exiftool

    我对用 java api 或类似的东西解析 exiftool 结果很感兴趣 我一直在研究 但没有找到任何例子 例如 我如何在我的java项目中获得这些结果 Exif工具版本号 8 22 文件名 Exif工具 jpg 目录 t images
  • 使用 GCC 和 Egypt 生成综合调用图

    我正在尝试生成一个全面的调用图 包括对 Linux 运行时等的低级调用 我使用 fdump rtl expand 静态编译了我的源文件并创建了 RTL 文件 我将其传递给名为 Egypt 的 PERL 脚本 我认为是 Graphviz Do