[hellogcc] Re: 哪位大牛能简单介绍一下GCC里面的垃圾收集功能

  • From: asmwarrior <asmwarrior@xxxxxxxxx>
  • To: hellogcc@xxxxxxxxxxxxx
  • Date: Sun, 26 Jun 2011 13:04:06 +0800

On 2011-6-26 11:57, Mingjie Xing wrote:
在 2011年6月25日 下午7:53,asmwarrior<asmwarrior@xxxxxxxxx>  写道:
http://gcc.gnu.org/wiki/gengtype

我始终不是很明白,标注了GTY这些宏了之后,这些类型和没有标注有虾米区别??
怎么加入了这些,就可以支持垃圾收集?甚至可以支持PCH了呢?
简单说一下,gengtype程序会扫描gcc源代码,根据标注GTY自动生成相应的分配和收集代码,可以看到build目录下有一些gt-xxx文件。这些文件在gcc源代码中的最后一行,会使用#include包含进来。

xmj
谢谢!
这一点我自己也是明白的。

在build 目录下面,有非常多的 gt-foo.h 这样的头文件。这些文件基本上是被对 应的 foo.cpp 包含的。

这些gt-foo.h文件里面的内容非常古怪,函数名字特别长,我就是不太懂,这些冗 长的函数名字,具体和gcc里面的某些类型有什么关系?

例如我定义了一个struct结构体

struct A
{
int m1;
float m2;
}

如果加上了GTY的宏,那么我感觉就应该生成的是:读写struct A的一些函数???

我想象中,感觉有点类似于 data persistence 那种意味?也就是把某些变量保存 到硬盘上?然后下一次直接都读入到内存再初始化某些变量?

但是这个和GC(垃圾收集)又似乎扯不上关系。GCC是怎么知道要把某些变量给 persistence了呢?

谢谢

asmwarrior

Other related posts: