2008-11-01 18:16:48 +01:00
<?xml version='1.0' encoding='UTF-8'?>
< !DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!--
`xsltproc -''-nonet \
-''-param man.charmap.use.subset "0" \
-''-param make.year.ranges "1" \
-''-param make.single.year.ranges "1" \
/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
manpage.xml'
A manual page <package > .<section > will be generated. You may view the
manual page with: nroff -man <package > .<section > | less'. A typical entry
in a Makefile or Makefile.am is:
DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl
XP = xsltproc -''-nonet -''-param man.charmap.use.subset "0"
manpage.1: manpage.xml
$(XP) $(DB2MAN) $<
The xsltproc binary is found in the xsltproc package. The XSL files are in
docbook-xsl. A description of the parameters you can use can be found in the
docbook-xsl-doc-* packages. Please remember that if you create the nroff
version in one of the debian/rules file targets (such as build), you will need
to include xsltproc and docbook-xsl in your Build-Depends control field.
Alternatively use the xmlto command/package. That will also automatically
pull in xsltproc and docbook-xsl.
Notes for using docbook2x: docbook2x-man does not automatically create the
AUTHOR(S) and COPYRIGHT sections. In this case, please add them manually as
<refsect1 > ... </refsect1> .
To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections
read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be
found in the docbook-xsl-doc-html package.
Validation can be done using: `xmllint -''-noout -''-valid manpage.xml`
General documentation about man-pages and man-page-formatting:
man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
-->
<!-- Fill in your name for FIRSTNAME and SURNAME. -->
<!ENTITY dhfirstname "Reijo">
<!ENTITY dhsurname "Tomperi">
2009-03-07 08:56:12 +01:00
<!-- dhusername could also be set to "&firstname; &surname;". -->
2008-11-01 18:16:48 +01:00
<!ENTITY dhusername "&dhfirstname; &dhsurname;">
<!ENTITY dhemail "aggro80@users.sourceforge.net">
<!-- SECTION should be 1 - 8, maybe w/ subsection other parameters are
allowed: see man(7), man(1) and
http://www.tldp.org/HOWTO/Man-Page/q2.html. -->
<!ENTITY dhsection "1">
<!-- TITLE should be something like "User commands" or similar (see
http://www.tldp.org/HOWTO/Man-Page/q2.html). -->
<!ENTITY dhtitle "cppcheck User Manual">
<!ENTITY dhucpackage "CPPCHECK">
<!ENTITY dhpackage "cppcheck">
]>
<refentry >
<refentryinfo >
<title > &dhtitle; </title>
<productname > &dhpackage; </productname>
<authorgroup >
<author >
<firstname > &dhfirstname; </firstname>
<surname > &dhsurname; </surname>
<contrib > Wrote this manpage for the Debian system.</contrib>
<address >
<email > &dhemail; </email>
</address>
</author>
</authorgroup>
<copyright >
2011-01-09 20:33:36 +01:00
<year > 2009 - 2011</year>
2008-11-01 18:16:48 +01:00
<holder > &dhusername; </holder>
</copyright>
<legalnotice >
<para > This manual page was written for the Debian system
(but may be used by others).</para>
<para > Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU General Public License,
2010-10-11 23:37:38 +02:00
Version 3 or (at your option) any later version published by
2008-11-01 18:16:48 +01:00
the Free Software Foundation.</para>
<para > On Debian systems, the complete text of the GNU General Public
License can be found in
2010-10-11 23:37:38 +02:00
<filename > /usr/share/common-licenses/GPL-3</filename> .</para>
2008-11-01 18:16:48 +01:00
</legalnotice>
</refentryinfo>
<refmeta >
<refentrytitle > &dhucpackage; </refentrytitle>
<manvolnum > &dhsection; </manvolnum>
</refmeta>
<refnamediv >
<refname > &dhpackage; </refname>
2010-07-08 16:51:28 +02:00
<refpurpose > Tool for static C/C++ code analysis</refpurpose>
2008-11-01 18:16:48 +01:00
</refnamediv>
<refsynopsisdiv >
<cmdsynopsis >
<command > &dhpackage; </command>
2010-07-08 16:51:28 +02:00
<arg choice= "opt" > <option > --append=[file]</option> </arg>
2010-06-05 12:13:42 +02:00
<arg choice= "opt" > <option > -D[id]</option> </arg>
2009-12-05 21:24:04 +01:00
<arg choice= "opt" > <option > --enable=[id]</option> </arg>
2009-03-06 01:03:31 +01:00
<arg choice= "opt" > <option > --error-exitcode=[n]</option> </arg>
2011-02-04 23:40:12 +01:00
<arg choice= "opt" > <option > --errorlist</option> </arg>
<arg choice= "opt" > <option > --exitcode-suppressions=[file]</option> </arg>
2010-07-08 16:51:28 +02:00
<arg choice= "opt" > <option > --file-list=file</option> </arg>
2009-01-22 21:26:04 +01:00
<arg choice= "opt" > <option > --force</option> </arg>
<arg choice= "opt" > <option > --help</option> </arg>
2009-02-20 20:40:42 +01:00
<arg choice= "opt" > <option > -I[dir]</option> </arg>
2011-02-04 23:40:12 +01:00
<arg choice= "opt" > <option > -i[dir]</option> </arg>
2010-07-08 16:51:28 +02:00
<arg choice= "opt" > <option > --inline-suppr</option> </arg>
2009-03-06 22:17:42 +01:00
<arg choice= "opt" > <option > -j[jobs]</option> </arg>
2009-01-22 21:26:04 +01:00
<arg choice= "opt" > <option > --quiet</option> </arg>
2010-08-12 21:03:33 +02:00
<arg choice= "opt" > <option > --report-progress</option> </arg>
2008-12-19 23:27:51 +01:00
<arg choice= "opt" > <option > --style</option> </arg>
2011-02-04 23:40:12 +01:00
<arg choice= "opt" > <option > --suppressions-list=[file]</option> </arg>
2010-07-08 16:51:28 +02:00
<arg choice= "opt" > <option > --template '[text]'</option> </arg>
2008-12-19 23:27:51 +01:00
<arg choice= "opt" > <option > --verbose</option> </arg>
2009-03-06 22:17:42 +01:00
<arg choice= "opt" > <option > --version</option> </arg>
2009-02-09 21:51:04 +01:00
<arg choice= "opt" > <option > --xml</option> </arg>
2011-02-04 23:40:12 +01:00
<arg choice= "opt" > <option > --xml-version=[version]</option> </arg>
2008-12-19 20:19:26 +01:00
<arg choice= "opt" > <option > file or path</option> </arg>
2008-11-01 18:16:48 +01:00
<arg choice= "plain" > <option > ...</option> </arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id= "description" >
<title > DESCRIPTION</title>
2010-07-08 16:51:28 +02:00
<para > Cppcheck is a command-line tool that tries to detect bugs that your C/C++
compiler doesn't see. It is versatile, and can check non-standard code
including various compiler extensions, inline assembly code, etc.
Its internal preprocessor can handle includes, macros, and several
preprocessor commands. While Cppcheck is highly configurable,
you can start using it just by giving it a path to the source code.
</para>
2008-11-01 18:16:48 +01:00
</refsect1>
<refsect1 id= "options" >
<title > OPTIONS</title>
<para > Analyze given C/C++ files for common errors.</para>
<variablelist >
<!-- Use the variablelist.term.separator and the
variablelist.term.break.after parameters to
control the term elements. -->
2009-09-12 21:16:13 +02:00
<varlistentry >
<term > <option > --append=[file]</option> </term>
<listitem >
<para > This allows you to provide information about functions by providing an implementation for these.</para>
</listitem>
</varlistentry>
2010-06-05 12:13:42 +02:00
<varlistentry >
<term > <option > -D[id]</option> </term>
<listitem >
2010-10-02 23:02:46 +02:00
<para > By default Cppcheck checks all configurations. Use -D to limit the checking. When -D is used the checking is limited to the given configuration.
Example: -DDEBUG=1 -D__cplusplus</para>
2010-06-05 12:13:42 +02:00
</listitem>
</varlistentry>
2009-11-15 15:47:57 +01:00
<varlistentry >
2009-12-05 21:24:04 +01:00
<term > <option > --enable=[id]</option> </term>
2009-11-15 15:47:57 +01:00
<listitem >
2011-02-04 23:40:12 +01:00
<para > Enable additional checks. The available ids are:
2010-06-05 12:13:42 +02:00
<glosslist >
<glossentry >
<glossterm > all</glossterm>
<glossdef >
2011-02-04 23:40:12 +01:00
<para > Enable all checks</para>
2010-06-05 12:13:42 +02:00
</glossdef>
</glossentry>
<glossentry >
<glossterm > style</glossterm>
<glossdef >
2011-02-04 23:40:12 +01:00
<para > Check coding style</para>
</glossdef>
</glossentry>
<glossentry >
<glossterm > information</glossterm>
<glossdef >
<para > Enable information messages</para>
2010-06-05 12:13:42 +02:00
</glossdef>
</glossentry>
<glossentry >
2010-10-02 23:02:46 +02:00
<glossterm > unusedFunction</glossterm>
2010-06-05 12:13:42 +02:00
<glossdef >
2011-02-04 23:40:12 +01:00
<para > Check for unused functions</para>
2010-06-05 12:13:42 +02:00
</glossdef>
</glossentry>
2010-10-02 23:02:46 +02:00
<glossentry >
<glossterm > missingInclude</glossterm>
<glossdef >
2011-02-04 23:40:12 +01:00
<para > Check for missing includes</para>
2010-10-02 23:02:46 +02:00
</glossdef>
</glossentry>
2010-06-05 12:13:42 +02:00
</glosslist>
2011-02-04 23:40:12 +01:00
By default none of the additional checks are enabled. Several ids can be given if you separate them with commas, e.g. --enable=style,unusedFunction.
2010-06-05 12:13:42 +02:00
</para>
2009-11-15 15:47:57 +01:00
</listitem>
</varlistentry>
2009-03-06 01:03:31 +01:00
<varlistentry >
<term > <option > --error-exitcode=[n]</option> </term>
<listitem >
2009-03-07 08:56:12 +01:00
<para > If errors are found, integer [n] is returned instead of default 0.
2009-03-06 01:03:31 +01:00
EXIT_FAILURE is returned if arguments are not valid or if no input files are
2009-03-07 08:56:12 +01:00
provided. Note that your operating system can modify this value, e.g.
2009-03-06 01:03:31 +01:00
256 can become 0.</para>
</listitem>
</varlistentry>
2010-06-05 12:13:42 +02:00
<varlistentry >
2011-02-04 23:40:12 +01:00
<term > <option > --errorlist</option> </term>
<listitem >
<para > Print a list of all possible error messages in XML format.</para>
</listitem>
</varlistentry>
<varlistentry >
<term > <option > --exitcode-suppressions=[file]</option> </term>
2010-06-05 12:13:42 +02:00
<listitem >
<para > Used when certain messages should be displayed but should not cause a non-zero exitcode.</para>
</listitem>
</varlistentry>
<varlistentry >
<term > <option > --file-list=[file]</option> </term>
<listitem >
<para > Specify the files to check in a text file. One filename per line.</para>
</listitem>
</varlistentry>
2009-01-22 20:59:50 +01:00
<varlistentry >
<term > <option > -f</option> </term>
<term > <option > --force</option> </term>
<listitem >
2009-03-07 08:56:12 +01:00
<para > Force checking of files that have a lot of configurations. Error is printed if such a file is found so there is no reason to use this by
2009-01-22 20:59:50 +01:00
default.</para>
</listitem>
</varlistentry>
2009-01-22 21:26:04 +01:00
<varlistentry >
<term > <option > -h</option> </term>
<term > <option > --help</option> </term>
<listitem >
<para > Print help text.</para>
</listitem>
</varlistentry>
2009-01-22 20:59:50 +01:00
<varlistentry >
2009-02-20 20:40:42 +01:00
<term > <option > -I [dir]</option> </term>
2009-01-22 20:59:50 +01:00
<listitem >
2009-03-07 08:56:12 +01:00
<para > Give include path. Give several -I parameters to give several paths. First given path is checked first. If paths are relative to source
2009-01-22 20:59:50 +01:00
files, this is not needed.</para>
</listitem>
</varlistentry>
2011-02-04 23:40:12 +01:00
<varlistentry >
<term > <option > -i [dir]</option> </term>
<listitem >
<para > Give path to ignore. Give several -i parameters to ignore several paths. Give directory name or filename with path as parameter.
Directory name is matched to all parts of the path.</para>
</listitem>
</varlistentry>
2010-06-05 12:13:42 +02:00
<varlistentry >
<term > <option > --inline-suppr</option> </term>
<listitem >
<para > Enable inline suppressions. Use them by placing comments in the form: // cppcheck-suppress memleak
before the line to suppress.</para>
</listitem>
</varlistentry>
2009-03-06 22:17:42 +01:00
<varlistentry >
<term > <option > -j [jobs]</option> </term>
<listitem >
<para > Start [jobs] threads to do the checking work.</para>
</listitem>
</varlistentry>
2008-11-01 18:16:48 +01:00
<varlistentry >
2008-12-19 23:27:51 +01:00
<term > <option > -q</option> </term>
2008-12-19 20:19:26 +01:00
<term > <option > --quiet</option> </term>
2008-11-01 18:16:48 +01:00
<listitem >
2008-12-19 20:19:26 +01:00
<para > Only print something when there is an error.</para>
2008-11-01 18:16:48 +01:00
</listitem>
</varlistentry>
2010-08-12 21:03:33 +02:00
<varlistentry >
<term > <option > --report-progress</option> </term>
<listitem >
<para > Report progress when checking a file.</para>
</listitem>
</varlistentry>
2008-11-15 07:44:32 +01:00
<varlistentry >
2008-12-19 23:27:51 +01:00
<term > <option > -s</option> </term>
2008-12-19 20:19:26 +01:00
<term > <option > --style</option> </term>
2008-11-15 07:44:32 +01:00
<listitem >
2009-12-05 21:24:04 +01:00
<para > Deprecated, use --enable=style</para>
2008-11-15 07:44:32 +01:00
</listitem>
</varlistentry>
2009-10-08 16:56:30 +02:00
<varlistentry >
2011-02-04 23:40:12 +01:00
<term > <option > --suppressions-list=[file]</option> </term>
2009-10-08 16:56:30 +02:00
<listitem >
2010-07-08 16:51:28 +02:00
<para > Suppress warnings listed in the file. Filename and line are optional. The format of the single line in file is: [error id]:[filename]:[line].
You can use --template or --xml to see the error id.</para>
2009-10-08 16:56:30 +02:00
</listitem>
</varlistentry>
2009-09-05 21:01:49 +02:00
<varlistentry >
2010-07-08 16:51:28 +02:00
<term > <option > --template '[text]'</option> </term>
2009-09-05 21:01:49 +02:00
<listitem >
2009-09-28 21:48:27 +02:00
<para > Format the error messages. E.g. '{file}:{line},{severity},{id},{message}' or '{file}({line}):({severity}) {message}'. Pre-defined templates: gcc, vs</para>
2009-09-05 21:01:49 +02:00
</listitem>
</varlistentry>
2008-11-30 11:38:58 +01:00
<varlistentry >
2008-12-19 23:27:51 +01:00
<term > <option > -v</option> </term>
2008-11-30 11:38:58 +01:00
<term > <option > --verbose</option> </term>
<listitem >
<para > More detailed error reports</para>
</listitem>
</varlistentry>
2009-02-20 20:40:42 +01:00
<varlistentry >
2009-03-06 22:17:42 +01:00
<term > <option > --version</option> </term>
2009-02-20 20:40:42 +01:00
<listitem >
2009-03-06 22:17:42 +01:00
<para > Print out version information</para>
2009-02-20 20:40:42 +01:00
</listitem>
</varlistentry>
2009-01-28 22:01:29 +01:00
<varlistentry >
2009-02-09 21:51:04 +01:00
<term > <option > --xml</option> </term>
2009-01-28 22:01:29 +01:00
<listitem >
2010-12-15 18:45:53 +01:00
<para > Write results in XML to error stream</para>
2009-01-28 22:01:29 +01:00
</listitem>
</varlistentry>
2011-02-04 23:40:12 +01:00
<varlistentry >
<term > <option > --xml-version=[version]</option> </term>
<listitem >
<para > Select the XML file version. Currently versions 1 and 2 are available. The default version is 1.</para>
</listitem>
</varlistentry>
2008-11-01 18:16:48 +01:00
</variablelist>
</refsect1>
<refsect1 id= "author" >
<title > AUTHOR</title>
2011-02-04 23:40:12 +01:00
<para > The program was written by Daniel Marjamäki and Cppcheck team. See AUTHORS file for list of team members.</para>
2008-11-01 18:16:48 +01:00
</refsect1>
<refsect1 id= "see_also" >
<title > SEE ALSO</title>
<!-- In alpabetical order. -->
<para > Full list of features: http://cppcheck.wiki.sourceforge.net/</para>
2009-03-07 08:56:12 +01:00
</refsect1>
2008-11-01 18:16:48 +01:00
</refentry>