PC6下载站

分类分类

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

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

5 页 调用 gcov_allocate


(gdb) p gcov_var

$1 = {

file = 0x810c008, // 文件指针

start = 0,

offset = 0,

length = 0,

overread = 4294967295, // 4294967295 =0xffffffff=-1

error = 0,

mode = 1,

endian = 0,

alloc = 2050,

buffer = 0x810c170

}

(gdb) x /42w 0x810c170 // 查看 buffer 中的前 42 个字,共 168 字节,就是 test.gcda 文件的内容

0x810c170: 0x67636461 0x34303170 0xc5ecae39 0x01000000

0x810c180: 0x00000002 0x00000003 0xeb65a768 0x01a10000

0x810c190: 0x0000000a 0x0000000a 0x00000000 0x00000000

0x810c1a0: 0x00000000 0x00000001 0x00000000 0x00000000

0x810c1b0: 0x00000000 0x00000001 0x00000000 0xa1000000

0x810c1c0: 0x00000009 0x00000000 0x00000005 0x00000001

0x810c1d0: 0x0000000c 0x00000000 0x0000000a 0x00000000

0x810c1e0: 0x0000000a 0x00000000 0xa3000000 0x00000009

0x810c1f0: 0x51924f98 0x00000005 0x00000001 0x0000000c

0x810c200: 0x00000000 0x0000000a 0x00000000 0x0000000a

0x810c210: 0x00000000 0x00000000

其中,前 3 个字 (4 字节 / 字 ) 即为 magic, version, stamp ;蓝色部分即为 tag ,可以参考 " Linux 平台代码覆盖率测试 -GCC 如何编译生成 gcov/gcov-dump 程序及其 bug 分析 " 一文的 3.3 和 3.4 节,也可以参考本文第 3 节。



为什么为 gcov_var.buffer 分配了 8200 字节的空间?

——这就是 gcov_allocate 完成的。

展开全部

相关文章

更多+相同厂商

热门推荐

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

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消