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"
阅读(5419) | 评论(0) | 转发(0) |