Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: Re: [Wireshark-dev] code coverage measurement for a dissector?

From: Németh Márton <nm127@xxxxxxxxxxx>
Date: Fri, 04 Jan 2008 08:32:09 +0100
Stig Bjørlykke wrote:
> On 3. jan.. 2008, at 08.54, Németh Márton wrote:
> 
>> What is your Wireshark version?
> 
> 
> Latest SVN.
> 
> I found the *.gcno files in epan/dissectors/.libs/, so doing a "gcov - 
> o .libs/libcleandissectors_la-packet-dmp.o packet-dmp.c" in epan/ 
> dissectors creates a coverage output for my dissector.

May I ask for your libtool version?

According to the following bug report my problem could be with the "libtool":
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27545#5 . It is mentioned that there
is a problem that libtool does not give all the parameters to gcc. I checked this
with Wireshark and attached the full make log.

When linking .libs/libwiretap.so.0.0.1, libtool is called with the '--coverage' option:

[...]
/bin/sh ../libtool --tag=CC   --mode=link gcc -Werror -DINET6 -D_U_="__attribute__((unused))"
--coverage -Wall -W -Wdeclaration-after-statement -Wendif-labels -Wpointer-arith -Wno-pointer-sign -I/usr/lo
cal/include -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/
include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/inc
lude/freetype2 -I/usr/include/libpng12   -I/home/nmarci/usr/local/libpcap/include  -version-info 0:1:
0  -L/usr/local/lib -L/home/nmarci/usr/local/libpcap/lib -L/usr/local/lib -L/usr/local/lib
-o libwiretap.la -rpath /home/nmarci/usr/local/wireshark/lib libwiretap_la-5views.lo libwiretap_la-airopeek9.lo
 libwiretap_la-ascend.lo libwiretap_la-atm.lo libwiretap_la-ber.lo libwiretap_la-buffer.lo libwiretap
_la-catapult_dct2000.lo libwiretap_la-commview.lo libwiretap_la-cosine.lo libwiretap_la-csids.lo libw
iretap_la-dbs-etherwatch.lo libwiretap_la-erf.lo libwiretap_la-etherpeek.lo libwiretap_la-eyesdn.lo l
ibwiretap_la-file_access.lo libwiretap_la-file_wrappers.lo libwiretap_la-hcidump.lo libwiretap_la-i4b
trace.lo libwiretap_la-iptrace.lo libwiretap_la-iseries.lo libwiretap_la-k12.lo libwiretap_la-lanalyz
er.lo libwiretap_la-libpcap.lo libwiretap_la-mpeg.lo libwiretap_la-mpeg-audio.lo libwiretap_la-netmon
.lo libwiretap_la-netscreen.lo libwiretap_la-nettl.lo libwiretap_la-network_instruments.lo libwiretap
_la-netxray.lo libwiretap_la-ngsniffer.lo libwiretap_la-pppdump.lo libwiretap_la-radcom.lo libwiretap
_la-snoop.lo libwiretap_la-toshiba.lo libwiretap_la-visual.lo libwiretap_la-vms.lo libwiretap_la-wtap
.lo  libwiretap_generated.la -lz


However, when gcc is started, the '--coverage' option is no longer there:

gcc -shared  .libs/libwiretap_la-5views.o .libs/libwiretap_la-airopeek9.o .libs/libwiretap_la-ascend.
o .libs/libwiretap_la-atm.o .libs/libwiretap_la-ber.o .libs/libwiretap_la-buffer.o .libs/libwiretap_l
a-catapult_dct2000.o .libs/libwiretap_la-commview.o .libs/libwiretap_la-cosine.o .libs/libwiretap_la-
csids.o .libs/libwiretap_la-dbs-etherwatch.o .libs/libwiretap_la-erf.o .libs/libwiretap_la-etherpeek.
o .libs/libwiretap_la-eyesdn.o .libs/libwiretap_la-file_access.o .libs/libwiretap_la-file_wrappers.o
.libs/libwiretap_la-hcidump.o .libs/libwiretap_la-i4btrace.o .libs/libwiretap_la-iptrace.o .libs/libw
iretap_la-iseries.o .libs/libwiretap_la-k12.o .libs/libwiretap_la-lanalyzer.o .libs/libwiretap_la-lib
pcap.o .libs/libwiretap_la-mpeg.o .libs/libwiretap_la-mpeg-audio.o .libs/libwiretap_la-netmon.o .libs
/libwiretap_la-netscreen.o .libs/libwiretap_la-nettl.o .libs/libwiretap_la-network_instruments.o .lib
s/libwiretap_la-netxray.o .libs/libwiretap_la-ngsniffer.o .libs/libwiretap_la-pppdump.o .libs/libwire
tap_la-radcom.o .libs/libwiretap_la-snoop.o .libs/libwiretap_la-toshiba.o .libs/libwiretap_la-visual.
o .libs/libwiretap_la-vms.o .libs/libwiretap_la-wtap.o -Wl,--whole-archive ./.libs/libwiretap_generat
ed.a -Wl,--no-whole-archive  -L/usr/local/lib -L/home/nmarci/usr/local/libpcap/lib -lz  -pthread -Wl,
-soname -Wl,libwiretap.so.0 -o .libs/libwiretap.so.0.0.1

My libtool version is:

$ libtool --version
ltmain.sh (GNU libtool) 1.5.24 Debian 1.5.24-2 (1.1220.2.456 2007/06/24 02:25:32)

	Márton Németh

Attachment: full-make.log.gz
Description: application/gzip