修改gcc gcov计数器大小

修改gcc gcov计数器大小,gcc,code-coverage,gcov,Gcc,Code Coverage,Gcov,由于内存量非常有限,我想用gcov(gcc-fprofile arcs-ftest coverage)修改用于覆盖率数据的计数器(当前为64位)的大小,并需要一些指导来实现这一点 是否可以在不修改和重新编译gcc的情况下更改计数器的大小 如果1不可能,为了使用32位(甚至更小)计数器,需要修改gcc的哪些部分 提前感谢您提供的任何有用的输入。GCC在其源代码中插入(counter-increase)语句,因此我认为不修改GCC本身是不可能的 对于问题2:此过程中的GCC仪器计数器代码: (pro

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

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

  • 如果1不可能,为了使用32位(甚至更小)计数器,需要修改gcc的哪些部分

  • 提前感谢您提供的任何有用的输入。

    GCC在其源代码中插入(counter-increase)语句,因此我认为不修改GCC本身是不可能的

    对于问题2:此过程中的GCC仪器计数器代码: (profile.c/branch\u prob)-->(profile.c/instrument\u edges)-->(profile.c/gen\u edge\profiler)

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