|
From: Stefan K. <en...@ho...> - 2009-12-26 16:53:08
|
Hi, I am quite interested in a coverage tool that does not need recompilation. There seems to be a patched qemu somewhere, but then I found valgrind-vcov. I had some issue building the branch. mv -f .deps/memcheck_x86_linux-mc_main.Tpo .deps/memcheck_x86_linux-mc_main.Po gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1 -DVGP_x86_linux=1 -m32 -mpreferred-stack-boundary=2 -O2 -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-format-zero-length -fno-strict-aliasing -O2 -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT memcheck_x86_linux-mc_translate.o -MD -MP -MF .deps/memcheck_x86_linux-mc_translate.Tpo -c -o memcheck_x86_linux-mc_translate.o `test -f 'mc_translate.c' || echo './'`mc_translate.c mc_translate.c: In function ‘vgMemCheck_instrument’: mc_translate.c:4202: error: ‘struct <anonymous>’ has no member named ‘resSC’ mc_translate.c:4204: error: ‘struct <anonymous>’ has no member named ‘resSC’ mc_translate.c:4208: error: ‘struct <anonymous>’ has no member named ‘resSC’ mc_translate.c: In function ‘schemeS’: mc_translate.c:4949: error: ‘struct <anonymous>’ has no member named ‘resSC’ mc_translate.c:4950: error: ‘struct <anonymous>’ has no member named ‘resSC’ make[4]: *** [memcheck_x86_linux-mc_translate.o] Fehler 1 make[4]: Leaving directory `/home/ensonic/projects/valgrind-vcov/memcheck' make[3]: *** [all-recursive] Fehler 1 make[3]: Leaving directory `/home/ensonic/projects/valgrind-vcov/memcheck' make[2]: *** [all] Fehler 2 make[2]: Leaving directory `/home/ensonic/projects/valgrind-vcov/memcheck' make[1]: *** [all-recursive] Fehler 1 make[1]: Leaving directory `/home/ensonic/projects/valgrind-vcov' make: *** [all] Fehler 2 After skipping memcheck, I could get the rest to build, but get issues running it. Any ideas? I would be interested to figure if it can be made useable together with lcov or is vcov abandoned? Stefan /vg-in-place --tool=exp-vcov /path/to/testapp ==26250== exp-VCov, a test coverage tool. ==26250== NOTE: This is an Experimental-Class Valgrind Tool. ==26250== Copyright (C) 2002-2008, and GNU GPL'd, by Nicholas Nethercote. ==26250== Using Valgrind-3.5.0.SVN and LibVEX; rerun with -h for copyright info ==26250== exp-VCov: vc_main.c:385 (doOneInstr): the 'impossible' happened. exp-VCov: didn't find 43 in lineCCs (/usr/src/debug//////////glibc-2.10.1/setjmp/../sysdeps/i386/setjmp.S) ==26250== at 0x38002AB0: report_and_quit (m_libcassert.c:145) ==26250== by 0x38002CEC: vgPlain_assert_fail (m_libcassert.c:217) ==26250== by 0x38000B83: doOneInstr (vc_main.c:384) ==26250== by 0x38000C8F: vc_instrument (vc_main.c:435) ==26250== by 0x38095912: LibVEX_Translate (main_main.c:495) ==26250== by 0x38018CE1: vgPlain_translate (m_translate.c:1517) ==26250== by 0x3803D991: vgPlain_scheduler (scheduler.c:844) ==26250== by 0x38069414: run_a_thread_NORETURN (syswrap-linux.c:91) sched status: running_tid=1 Thread 1: status = VgTs_Runnable ==26250== at 0x466BD80: __sigsetjmp (setjmp.S:34) ==26250== by 0x46622B8: setlocale (setlocale.c:333) ==26250== by 0x8049E3A: main (bt-cmd.c:65) |