首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gcov不生成gcda文件

gcov不生成gcda文件
EN

Stack Overflow用户
提问于 2012-04-04 20:36:24
回答 4查看 25.8K关注 0票数 5

我试着用-fprofile-arcs & -ftest-coverage运行gcov,但没有链接。

它给出了这个错误:-

代码语言:javascript
复制
 hidden symbol `__gcov_init' in /home/mojave/tools/gcc-4.4.1/amd64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/libgcov.a(_gcov.o) is referenced by DSO

然后程序退出。

命令来编译-

代码语言:javascript
复制
bsub -g /mojave/build/"DummyDate" -J compile-obj/linux24rhel3_x86_64_GCOV64/DXp.o -I -q DFM -S 8192 -R "(model==OPTERON_250)" '/usr/bin/time --format="          ...finished DXp [`hostname`] [%E s with %P CPU]"  /home/mojave/tools/gcc-4.4.1/amd64/bin/g++ -fPIC -Wall -Wno-deprecated -DTCL_8_5 -m64 -march=opteron -DLITTLE_ENDIAN_PLATFORM -DARCH=amd64 -DARCH_amd64 -DARCH_BITS=64 -DARCH_BITS_64 -fsigned-char -msse3 -D__DISABLE_MULTITHREAD__ -D_CPP_NUMERIC_LIMITS -mfpmath=sse,387 -mmmx -m3dnow -pipe -Dgcc -DLICENSE_ALWAYS_GOOD -I/home/mojave/tools/flexlm/include/v8.4 -DNO_SUPPORT_STABIE -DGCOV -I../dxpclient -I/home/mojave/tools/bzip2-1.0.2/amd64/include -I/home/mojave/tools/zlib-1.2.3/amd64/include -I/home/mojave/tools/tcltk8.5.2/amd64//include -I/home/mojave/tools/tcltk8.5.2/amd64//include -g -fprofile-arcs -ftest-coverage -DBUILD_DATE=\""UNSET"\" -DVERSION_NUMBER=\"Dum.Dum.Dum.Dummy\" -DEXT_VERSION_NUMBER=\"Dum.Dum.Dum.Dummy\" -DLAST_RELEASE_VERSION=\"1.1614\" -Wreturn-type -DTCL_8_5 -DGOOGLE_MALLOC -L../dx/linux24rhel3_x86_64_GCOV64/ -ldx -o obj/linux24rhel3_x86_64_GCOV64/DXp obj/linux24rhel3_x86_64_GCOV64/DXp.o -Wl -lgcov /home/mojave/tools/zlib-1.2.3/amd64/lib/libz.a  -L/home/mojave/tools/bzip2-1.0.2/amd64/lib -lbz2    -ldl'

如有任何帮助,我们将不胜感激。

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-16 12:09:13

使用-fprofile-arcs-ftest-coverage进行编译。在生成共享对象时与-lgcov链接。看起来不错。

您还可以使用--coverage选项作为所有三个步骤的同义词

查看:gcc instrumentation options获取更多信息

票数 10
EN

Stack Overflow用户

发布于 2019-02-02 03:06:15

我刚刚发现,如果我发送一个sig kill或sig term到我的程序,只生成GCNO文件,没有gcda文件。

票数 2
EN

Stack Overflow用户

发布于 2015-10-13 19:08:43

在考虑编译标志之后,正如crazy_prog上面提到的,检查“路径”。在使用lcov/gcov进行覆盖时,路径扮演着重要的角色。

因此,创建二进制文件的路径(完整路径字符串)和运行二进制文件的路径应该完全相同。

就我而言,由于二进制文件的创建和执行是在不同的位置(一个在开发环境中,另一个在实际的板中),所以使用softlink/快捷方式,我创建了类似的路径,因此运行可执行文件。最后,可以在开发环境中生成报告(通常,因为板上的实际平台可能不支持lcov工具)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10011222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档