【问题标题】:Modify gcc gcov counter size修改 gcc gcov 计数器大小
【发布时间】:2013-04-03 09:09:35
【问题描述】:

由于内存量非常有限,我想使用 gcov (gcc -fprofile-arcs -ftest-coverage) 修改用于覆盖数据的计数器的大小(当前为 64 位),并且需要一些指导以便实现这一目标。

  1. 是否可以在不修改和重新编译 gcc 的情况下更改计数器的大小?

  2. 如果不可能为 1,则需要更改 gcc 的哪些部分才能使用 32 位(甚至更小)的计数器?

提前感谢您提供任何可能有帮助的意见。

【问题讨论】:

    标签: gcc code-coverage gcov


    【解决方案1】:

    GCC 在其源代码中检测(计数器增加)语句,所以我认为不修改 GCC 本身是不可能的。

    对于问题2:此过程中的GCC仪器计数器代码: (profile.c/branch_prob)-->(profile.c/instrument_edges)-->(profile.c/gen_edge_profiler)

    profile.c 是 GCC_SOURCE_CODE/gcc 下的 GCC 源文件。 函数 branch_prob 将分配所有计数器(如您所知,每个计数器为 8 个字节),因此这是您需要修改的第一部分。 函数gen_edge_profiler生成rtl(编译后变成汇编)代码来增加计数器,你应该修改其中生成的(ADD指令)。 这两个函数是最重要的,还需要修改gcov读写函数以适应(4字节计数器)。

    【讨论】:

      猜你喜欢
      • 2013-04-08
      • 2012-01-01
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多