gcov没有生成gcda文件

cra*_*rog 4 gcc gcov

我尝试用-fprofile-arcs&运行gcov -ftest-coverage而没有用于链接.

它给出了这个错误: -

 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
Run Code Online (Sandbox Code Playgroud)

和程序退出.

命令编译 -

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'
Run Code Online (Sandbox Code Playgroud)

任何帮助将通过投票赞赏.

谢谢.

cra*_*rog 10

-fprofile-arcs和编译-ftest-coverage.-lgcov在生成共享对象期间链接.它会工作.

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

请参阅:gcc检测选项以获取更多信息

  • 注意:使用`--coverage`进行编译和链接会自动转换为您提供的标志.这是gcc提供的便利设施.也是面向未来的.请享用 ! (5认同)

小智 6

我刚刚发现,如果我向程序发送 sig Kill 或 sig term,则只会生成 GCNO 文件,不会生成 gcda 文件。

  • 那么是否有任何信号可以退出进程并保留生成 .gcda 文件,例如 SIGHUP 或 SIGINT? (2认同)