GCOV 用法

来源:互联网 发布:游戏编程 培训机构 编辑:程序博客网 时间:2024/06/05 01:50
CFLAGS="-fprofile-arcs -ftest-coverage"
LIBS="-lgcov"


1。GCOV
(1) 编译 CFLAGS CXXFLAGS LDFLAGS += "-fprofile-arcs -ftest-coverage -g -O0 -fPIC"
    gcc -fprofile-arcs -ftest-coverage -g -O0 -o test test.c
    生成.gcno文件(gcov note文件)
    备注:gcc -c 不会生成.gcda(交叉编译工具)
(2)运行程序
(2.1)环境准备
    默认会在test的编译路径生成.gcda(/work/build),如果不存在则生成.gcda失败
    通过设置GCOV_PREFIX=/tmp,则在/tmp/work/build生成.gcda
    通过设置GCOV_PREFIX_STRIP(默认0),消除路径,GCOV_PREFIX_STRIP=1,则在/build生成.gcda,默认是(/work/build)
    ./test
    生成test.gcda文件(gcov data文件)
(3) GCOV生成报告
    gcov test.c
    


2    .LCOV
(1) 编译 CFLAGS CXXFLAGS LDFLAGS += "-fprofile-arcs -ftest-coverage -g -O0 -fPIC"
    gcc -fprofile-arcs -ftest-coverage -g -O0 -o test test.c
    生成.gcno文件(gcov note文件)
    
1)lcov --zerocounters --directory . (.指向源码目录)
2)./test
3)lcov --capture --directory . --output-file trace_args.info  --test-name test --no-external
4)genhtml  trace_args.info --output-directory output --title "Basic example" --show-details  --legend

常用封装
export PERF_REPORT="perf report"
export PERF_RECORD_fgr0c1000="perf record -f -g  -r 0 -c 1000"
export PERF_RECORD_dfgr0c1000="perf record -f -g -d -r 0 -c 1000"
export PERF_ANNOTATE_lvP="perf annotate -l -v -P"

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(2508) | 评论(0) | 转发(0) |
0

上一篇:GCC编译优化指南

下一篇:CPU如何操作内存?

相关热门文章
  • socket中的短连接与长连接,心...
  • Haproxy、Keepalived双主高可...
  • Tomcat的性能与最大并发(1000)...
  • Nginx深入详解之日志
  • socket编程的同步、异步与阻塞...
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
原创粉丝点击