免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3902 | 回复: 2
打印 上一主题 下一主题

view_tree [复制链接]

论坛徽章:
2
摩羯座
日期:2013-10-10 14:29:04天蝎座
日期:2014-01-03 09:14:49
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-10 16:35 |只看该作者 |倒序浏览
gcc-vcg-plugin现在基本可以用来查看一个tree的结构了。
下面展示了一个简单的函数在gcc中的tree的结构:
$ cat ~/temp/plus.c
int
add (int a, int b)
{
  return a + b;
}

$ gdb -q -args ~/install/plugin/libexec/gcc/i686-pc-linux-gnu/4.5.0/cc1 plus.c -fplugin=~/install/general/lib/gcc-vcg-plugin/vcg.so

Breakpoint 1, c_genericize (fndecl=0xb7f21e00) at ../../plugin/gcc/c-gimplify.c:79
79        {
(gdb) view_tree fndecl

图形如下(注:由于图形太大,这里没有完全展开):

评分

参与人数 1可用积分 +30 收起 理由
prolj + 30 呵呵,等待下次的call graph

查看全部评分

论坛徽章:
2
摩羯座
日期:2013-10-10 14:29:04天蝎座
日期:2014-01-03 09:14:49
2 [报告]
发表于 2010-04-14 09:59 |只看该作者
gcc-vcg-plugin的实现目的

作为gcc的第三方插件,图形化显示gcc内部的数据结构,方便调试和查看gcc代码。

1. 可以在gdb中调试gcc时,图形化显示gcc内部的数据结构
2. 也可以在使用gcc编译程序的时候,转储图形化的描述文件

目前使用vcg格式来描述图形文件。

现在,你可以用它来

1. 查看一个函数的cfg,从而知道一个pass之后,优化对函数都做了哪些转换
2. 查看一个tree,了解gcc的tree结构

gcc-vcg-plugin的实现方法

1. 使用gcc的插件功能,编写一个动态链接库。
2. 针对gcc的内部数据结构,编写相应的转换函数,输出vcg文件。
3. 提供封装函数,用来调用vcgview来图形化显示vcg文件,在gdb中使用。

论坛徽章:
2
摩羯座
日期:2013-10-10 14:29:04天蝎座
日期:2014-01-03 09:14:49
3 [报告]
发表于 2010-04-21 13:20 |只看该作者
我把这个项目单独放在 http://code.google.com/p/gcc-vcg-plugin/ 上了,如果有感兴趣,想参加的,可以跟我联系。

另外,http://code.google.com/p/gccint-zh 这个项目还一直没有了结,有人感兴趣的话,也可以跟我联系。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP