NAME¶
ggcov - a GNOME frontend for exploring gcov coverage data
SYNOPSIS¶
ggcov [
GNOME options] [[
-r]
directory|
file]
...
DESCRIPTION¶
Ggcov is a GTK+ GUI for exploring test coverage data produced by C and
C++ programs compiled with
gcc -fprofile-arcs -ftest-coverage. So it's
basically a GUI replacement for the
gcov program that comes with
gcc.
Ggcov understands all the standard GTK+ and GNOME options, such as
-display and
-disable-crash-dialog. All other arguments are used
to specify how to find coverage data files. The arguments can combinations of:
- directory
- The directory is scanned for source files, which are
handled as if they had been specified on the commandline (except that
missing coverage data files are silently ignored). If the -r flag
is in effect, sub-directories are scanned recursively. Multiple
directories can be specified and are scanned in the order given.
- executable
- The executable file is scanned for debugging records which
contain source file names, and each source file which exists is handled as
if it had been specified on the command line (except that missing coverage
data files are silently ignored). Any shared libraries on which the
executable depends are also scanned. Multiple executables can be specified
and are scanned in the order given. This feature is only available on some
platforms (for example, i386-linux).
- source-file
- Is any regular file ending in one of the file extensions
.c, .cc, .cxx, .cpp, or .C. Source
files are matched to their corresponding coverage data files (
.gcno and .gcda files, or .bb, .bbg, and
.da files with older compilers) and object files by searching for a
file of the same basename and the appropriate extension first in the same
directory as the source file and then in all the directories specified on
the command line (in the order they were specified).
If no arguments are given,
ggcov shows a file selection dialog so you can
select one directory, executable, or source file.
Directories, executables, or source files can also be added after
ggcov
is started by dragging and dropping them from a GNOME Nautilus window onto any
ggcov window.
OPTIONS¶
- -o dir,
--object-directory=dir
- Add the directory dir to the search path for object
files and coverage data files.
- -p dir, --gcda-prefix=dir
- Look for runtime coverage data files (.gcda files)
underneath the directory dir instead of next to the corresponding
.c files. See the example in the ggcov-run(1) manpage.
- -r, --recursive
- When a directory is specified on the command line, search
for coverage data files recursively in all child directories.
- -w windows,
--initial-windows=windows
- Open the named windows when ggcov starts. Window
names are summary, files, functions, calls,
callbutterfly, callgraph, lego, source, and
reports. The default window is summary.
- -X symbols,
--suppress-ifdef=symbols
- Do not include in statistics or summaries, code inside C
pre-processor directives which depend on any of the given symbols.
One or more symbols may be given, separated by commas or whitespace.
Ggcov understands the following subset of the C pre-processor
command set:
- • #if SYMBOL
• #if defined(SYMBOL)
• #ifdef SYMBOL
• #ifndef SYMBOL
• #else
• #endif
- For example, -X DEBUG will suppress the
fprintf() call in this code:
-
unsigned int
my_function(unsigned int x)
{
x += 42;
#ifdef DEBUG
fprintf(stderr, "my_function: x=%u\n", x);
#endif
return x;
}
- This option is useful for suppressing test infrastructure
code, debugging code, or other code which is compiled into the coverage
test executable but whose coverage is not significant.
- -Y words,
--suppress-comment=words
- Do not include in statistics or summaries, code on lines
which also contains a single-line comment comprising only one of the given
words. One or more symbols may be given, separated by commas or
whitespace. For example, specifying -Y IGNOREME will suppress the
assert() in this code:
-
unsigned int
my_function(unsigned int x)
{
x += 42;
assert(x >= 42); /* IGNOREME */
return x;
}
- This option is useful for suppressing test infrastructure
code, debugging code, or other code which is compiled into the coverage
test executable but whose coverage is not significant.
- -Z startword,endword,...
- --suppress-comment-between=startword,endword,...
- Do not include in statistics or summaries, code on lines
between those containing a single-line comment comprising only
startword and the next single-line comment comprising only
endword. Two or more symbols may be given, in pairs, separated by
commas or whitespace. For example, -Z STARTIGNORE,ENDIGNORE will
suppress the entire function in this code:
-
/* STARTIGNORE */
unsigned int
my_function(unsigned int x)
{
x += 42;
return x;
}
// ENDIGNORE
- This option is useful for suppressing test infrastructure
code, debugging code, or other code which is compiled into the coverage
test executable but whose coverage is not significant.
EXAMPLES¶
View coverage data for all the available source in an executable (on some
platforms only):
- ggcov a.out
View coverage data for all the C source in the current directory, suppressing
code which depends on the symbols
DEBUG or
TEST:
- ggcov -X DEBUG,TEST *.c
View coverage data for all the C source in one directory where the object files
and test coverage data files are in different directories:
- ggcov /foo/obj/ /foo/cov-data/ /foo/src/
AUTHOR¶
Written by Greg Banks
<gnb@users.sourceforge.net>.
COPYRIGHT¶
ggcov is Copyright © 2001-2005 Greg Banks
<gnb@users.sourceforge.net>.
This is free software; see the COPYING file for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
SEE ALSO¶
ggcov-run(1).