PC6下载站

分类分类

gcov-dump原理分析_Linux平台代码覆盖率测试

关注+2011-07-12作者:清晨

6 页 分配空间函数 gcov_allocate


2.5 分配空间函数 gcov_allocate



代码如下。其中的注释为笔者加入。

#if ! IN_LIBGCOV

static void

gcov_allocate ( unsigned length )

{

size_t new_size = gcov_var .alloc ;


if ( ! new_size )

new_size = GCOV_BLOCK_SIZE ; /***** if new_size==0, then, new_size=1024( GCOV_BLOCK_SIZE=1024 ) */

new_size += length ; /***** if length==1, then, new_size=1025 */

new_size *= 2 ; /***** then, new_size=1025*2=2050 */


gcov_var .alloc = new_size;

gcov_var .buffer = xrealloc ( gcov_var .buffer , new_size << 2="" size="1025*4=8200">
}

#endif

实际上 gcov_var.alloc 是一个内存 block ,以 4 字节为一个单位。由代码及其注释可以看出,当 length=1 时, gcov_var.alloc=2050 ,调用 gcov_allocate 后,实际上分配了 2050*4=8200 个字节的空间给 gcov_var.buffer 。


此处,不得不介绍一下 gcov_var 。

展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消