`

gcov输出文件路径问题(转)

 
阅读更多

gcov是和gcc结合使用的测试代码覆盖率的一个工具(profiler),可用于发现代码的瓶颈。可以
做到(使用gcov最好不要优化编译):
    1.每一行代码运行的次数
    2.那些代码执行了
    3.没一节代码所用的时间

    gcov会创建一个名为‘sourcefile.gcov’的日志文件,他指示了代码运行的时间。此文件可被
gprof使用,gprof可从中给出时间信息。
    gcov只支持gcc编译的代码,并且编译时必须有‘-fprofile-arcs -ftest-coverage’参数,它
高速编译器添加额外的对gcov有用信息以及在目标文件中加入产生profiling信息的代码。当运行这样
编译的程序时,每个以‘-fprofile-arcs’编译的目标文件所在的目录会生成一个相应的".gcda"文件。
每个以‘-ftest-coverage’参数编译时会生成".gcno"文件,它包含了重建基本块图表和指派行号的信
息。然后,以源文件名为参数运行gcov,gcov就可从".gcda"文件中获得每一行代码运行的频率。比如:
    $ gcc -fprofile-arcs -ftest-coverage tmp.c
    $ a.out
    $ gcov tmp.c
    注意,gcov必须在编译代码时所在的目录中运行,否则无法定位文件。另外,运行计数是累及的,若
运行gcov时没删除上次输出的文件,本次测试计数会累加到上次计数上,而不是覆盖。

gcov常用参数:
    -a:输出每个基本块的运行计数,此选项可用于统计在同一行中的若干语句的各自运行次数
    -b:输出分支语句频率信息到输出文件,以及概要信息到标准输出,但不显示无条件分支
    -c:以数字而不是百分比显示分支频率
    -n:不创建输出文件
    -l:创建的输出文件名中包含头文件名,这对于头文件中包含代码并被多个源文件使用时有用
    -p:在.gocv文件名中加入完整的路径信息,此时路径中的'/'用'#'表示,'..'用'^'表示
    -f:输出每个函数的概要信息

    .gcov文件的基本格式是:
        执行次数(-表示改行没代码,#####表示改行从未执行过):行号:该行代码

交叉profiling:
    gcov要求运行时在目标系统中有相同的编译时的绝对目录路径,为了支持交叉编译,可使用下面两个
环境变量重定位数据文件:
    GCOV PREFIX - 指定加入到目标文件中的绝对路径前缀,默认没有前缀
    GCOV PREFIX STRIP - 指示要跳过的目录层次
    比如编译后目标文件在‘/user/build/foo.o’,编译后的程序执行时会创建‘/user/build/foo.gcda’
文件。但若把程序拷

分享到:
评论

相关推荐

    gcov-tools-1.0.tar.gz

    该程序是从gcc-4.1.2源代码中抽取出来的与gcov和gcov-dump相关的文件组成的小项目,包含两个工具gcov和gcov-dump。希望能对通过gcc覆盖率测试工具GCOV进行覆盖率测试相关工作的同行有些许的帮助。 其中,gcov的输入...

    gcov-1.0.tar.gz

    该程序是从gcc-4.1.2源代码中抽取出来的与gcov相关的文件组成的小项目。希望能对通过gcc覆盖率测试工具GCOV进行覆盖率测试相关工作的同行有些许的帮助。 gcov的输入是一个.c文件,前提是已经编译生成了.gcno文件并...

    gcov dumphandler

    使用gcov获取程序执行路径时,有些程序因异常等错误而结束,常规的gcov获取不到程序的执行路径。使用我们这个插件就可以获取。

    gcov-dump-1.0.tar.gz

    该程序是从gcc-4.1.2源代码中抽取出来的与gcov-dump相关的文件组成的小项目。希望能对通过gcc覆盖率测试工具GCOV进行覆盖率测试相关工作的同行有些许的帮助。 gcov-dump是一个dump程序,输入是一个gcov的文件,或者....

    使用gcov完成代码覆盖率的测试

    本文介绍一些gcov的使用方法,基本原理,一些实际中可能会遇到的问题以及解决思路。  Gcov作为gnu/gcc工作组件之一,是一款的免费的代码覆盖率测试工具,而且可以结合lcov生成美观的html的测试报表。本文介绍一些...

    Linux Kernel GCOV - tool analysis

    详细描述如何使用gcov工具来进行内核的代码覆盖率测试。包括linux-2.4内核和linux-2.6内核。极度推荐!

    lcov for linux gcov

    lcov for linux gcovlcov for linux gcovlcov for linux gcovlcov for linux gcovlcov for linux gcovlcov for linux gcov

    Gcov report

    gcov theory, usage, realization process

    OpenHarmony覆盖率测试,gcov及lcov的原理和使用简介

    采用覆盖率驱动的验证方式可以量化验证进度,保证验证的完备性。本文主要介绍了openharmony代码和分支覆盖率测试中所使用的工具(即gcov及lcov)的简介、工作原理及使用方法。

    gcov命令 测试代码覆盖率

    语法格式:gcov [参数] [文件] 常用参数: -a 显示每个基本的信息 -b 输出包含分支概率 -c 给出跳转的分支数,而不是百分比 -n 不创建输出文件 -l 为包含进来的源文件使用长输出文件名 -

    gcov_gprof.zip

    gcov_gprof.zip

    afl-cov, 使用afl模糊测试案例生成gcov的代码覆盖率结果.zip

    afl-cov, 使用afl模糊测试案例生成gcov的代码覆盖率结果 AFL Fuzzing Fuzzing Fuzzing Fuzzing简介afl-cov 使用 AFL fuzzer afl-fuzz 生成的测试用例文件为目标二进制文件生成gcov代码覆盖率结果。 为了确定AFL的新...

    gcov-fortran-example:一个最小的示例如何将gcov与fortran一起使用

    gcov-fortran 一个最小的例子,如何使用gcov 要求 ... gcov已与gfortran / gcc一起安装 用法 编译程序 make 执行程序 ./test 生成覆盖率信息 ...您必须确保使用编译代码的gcov版本。... 并在makefile中添加该路径

    gcovtools:gcov(GCCClang 代码覆盖率)解析器和翻译器

    您应该最终得到一个或多个.gcov文件。 接下来,安装 gem: gem install gcovtools 这应该会在您的路径中为您提供一个gcovtools可执行文件。 最后,以多种可能的方式之一执行gcovtools 。 例如,生成一个 HTML 覆盖...

    gcov_lcov 演练工程源码

    一个gcov和lcov使用和练习的源码,仅用来记录自我学习和使用gcov的过程和经验,以便后续开发中可以借鉴。

    linux gcov 工具详细介绍

    • 伴随GCC发布,配合GCC共同实现对C/C++文件的语句覆盖和分支覆盖测试; • 与程序概要分析工具(profiling tool,例如gprof)一起工作,可以估计程序中哪一段代码最耗时; 注:程序概要分析工具是分析代码性能的工具

    pycover:pycover.py脚本的存储库,用于处理gcov代码覆盖率结果

    此文件中的代码仅了解gcc-11 gcov文件格式。 进步 生成.info文件 目前正在进行html摘要生成 GCC选项 下文所述的GCC命令行选项用于检测代码,以进行代码覆盖率分析。 这些描述直接来自gcc命令行选项文档。 -...

    lcov的源代码,可以生称html文件

    lcov,可以将gcov生成的测试结果转换为html

    使用gcc/gcov生成代码覆盖率报告

    使用gcc/gcov生成代码覆盖率报告-源码

    gcov-frontend-3.4.6-081118.tar.gz_Linux/Unix编程_Unix_Linux_

    GNU Gcov性能分析工具的一个前端分析工具,可以用于分析Gcov后端的性能结果。

Global site tag (gtag.js) - Google Analytics