546 lines
23 KiB
XML
546 lines
23 KiB
XML
<?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">
|
|
<!-- dhusername could also be set to "&firstname; &surname;". -->
|
|
<!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>
|
|
<year>2009 - 2013</year>
|
|
<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,
|
|
Version 3 or (at your option) any later version published by
|
|
the Free Software Foundation.</para>
|
|
<para>On Debian systems, the complete text of the GNU General Public
|
|
License can be found in
|
|
<filename>/usr/share/common-licenses/GPL-3</filename>.</para>
|
|
</legalnotice>
|
|
</refentryinfo>
|
|
<refmeta>
|
|
<refentrytitle>&dhucpackage;</refentrytitle>
|
|
<manvolnum>&dhsection;</manvolnum>
|
|
</refmeta>
|
|
<refnamediv>
|
|
<refname>&dhpackage;</refname>
|
|
<refpurpose>Tool for static C/C++ code analysis</refpurpose>
|
|
</refnamediv>
|
|
<refsynopsisdiv>
|
|
<cmdsynopsis>
|
|
<command>&dhpackage;</command>
|
|
<arg choice="opt"><option>--append=<file></option></arg>
|
|
<arg choice="opt"><option>--check-config</option></arg>
|
|
<arg choice="opt"><option>--check-library</option></arg>
|
|
<arg choice="opt"><option>-D<id></option></arg>
|
|
<arg choice="opt"><option>-U<id></option></arg>
|
|
<arg choice="opt"><option>--enable=<id></option></arg>
|
|
<arg choice="opt"><option>--error-exitcode=<n></option></arg>
|
|
<arg choice="opt"><option>--errorlist</option></arg>
|
|
<arg choice="opt"><option>--exitcode-suppressions=<file></option></arg>
|
|
<arg choice="opt"><option>--file-list=<file></option></arg>
|
|
<arg choice="opt"><option>--force</option></arg>
|
|
<arg choice="opt"><option>--help</option></arg>
|
|
<arg choice="opt"><option>-I<dir></option></arg>
|
|
<arg choice="opt"><option>--includes-file=<file></option></arg>
|
|
<arg choice="opt"><option>-i<dir></option></arg>
|
|
<arg choice="opt"><option>--inconclusive</option></arg>
|
|
<arg choice="opt"><option>--inline-suppr</option></arg>
|
|
<arg choice="opt"><option>-j<jobs></option></arg>
|
|
<arg choice="opt"><option>--language=<language></option></arg>
|
|
<arg choice="opt"><option>--library=<cfg></option></arg>
|
|
<arg choice="opt"><option>--max-configs=<limit></option></arg>
|
|
<arg choice="opt"><option>--platform=<type></option></arg>
|
|
<arg choice="opt"><option>--quiet</option></arg>
|
|
<arg choice="opt"><option>--relative-paths=<paths></option></arg>
|
|
<arg choice="opt"><option>--report-progress</option></arg>
|
|
<arg choice="opt"><option>--rule=<rule></option></arg>
|
|
<arg choice="opt"><option>--rule-file=<file></option></arg>
|
|
<arg choice="opt"><option>--style</option></arg>
|
|
<arg choice="opt"><option>--std=<id></option></arg>
|
|
<arg choice="opt"><option>--suppress=<spec></option></arg>
|
|
<arg choice="opt"><option>--suppressions-list=<file></option></arg>
|
|
<arg choice="opt"><option>--template='<text>'</option></arg>
|
|
<arg choice="opt"><option>--verbose</option></arg>
|
|
<arg choice="opt"><option>--version</option></arg>
|
|
<arg choice="opt"><option>--xml</option></arg>
|
|
<arg choice="opt"><option>--xml-version=<version>]</option></arg>
|
|
<arg choice="opt"><option>file or path</option></arg>
|
|
<arg choice="plain"><option>...</option></arg>
|
|
</cmdsynopsis>
|
|
</refsynopsisdiv>
|
|
<refsect1 id="description">
|
|
<title>DESCRIPTION</title>
|
|
<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>
|
|
</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. -->
|
|
<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>
|
|
<varlistentry>
|
|
<term><option>--check-config</option></term>
|
|
<listitem>
|
|
<para>Check Cppcheck configuration. The normal code analysis is disabled by this flag.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--check-library</option></term>
|
|
<listitem>
|
|
<para>Show information messages when library files have incomplete info.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>-D<id></option></term>
|
|
<listitem>
|
|
<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>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>-U<id></option></term>
|
|
<listitem>
|
|
<para>By default Cppcheck checks all configurations. Use '-U' to explicitly hide certain #ifdef <id> code paths from checking.
|
|
Example: '-UDEBUG'</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--enable=<id></option></term>
|
|
<listitem>
|
|
<para>Enable additional checks. The available ids are:
|
|
<glosslist>
|
|
<glossentry>
|
|
<glossterm>all</glossterm>
|
|
<glossdef>
|
|
<para>Enable all checks. It is recommended to only use
|
|
--enable=all when the whole program is scanned, because this
|
|
enables unusedFunction.</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>warning</glossterm>
|
|
<glossdef>
|
|
<para>Enable warning messages</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>style</glossterm>
|
|
<glossdef>
|
|
<para>Enable all coding style checks. All messages with the
|
|
severities 'style', 'performance' and 'portability' are
|
|
enabled.</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>performance</glossterm>
|
|
<glossdef>
|
|
<para>Enable performance messages</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>portability</glossterm>
|
|
<glossdef>
|
|
<para>Enable portability messages</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>information</glossterm>
|
|
<glossdef>
|
|
<para>Enable information messages</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>unusedFunction</glossterm>
|
|
<glossdef>
|
|
<para>Check for unused functions. It is recommend to only
|
|
enable this when the whole program is scanned</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>missingInclude</glossterm>
|
|
<glossdef>
|
|
<para>Warn if there are missing includes. For detailed information use --check-config</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
</glosslist>
|
|
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. See also --std
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--error-exitcode=<n></option></term>
|
|
<listitem>
|
|
<para>If errors are found, integer <n> is returned instead of default 0.
|
|
EXIT_FAILURE is returned if arguments are not valid or if no input files are
|
|
provided. Note that your operating system can modify this value, e.g.
|
|
256 can become 0.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<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>
|
|
<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. When file is -, the file list will be read from standard input.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>-f</option></term>
|
|
<term><option>--force</option></term>
|
|
<listitem>
|
|
<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
|
|
default. If used together with --max-configs=, the last option is the one that is effective.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>-h</option></term>
|
|
<term><option>--help</option></term>
|
|
<listitem>
|
|
<para>Print help text.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>-I <dir></option></term>
|
|
<listitem>
|
|
<para>Give path to search for include files. Give several -I parameters to give several paths. First given path is
|
|
searched for contained header files first. If paths are relative to source files, this is not needed.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--includes-file=<file></option></term>
|
|
<listitem>
|
|
<para>Specify directory paths to search for included header files in a text file. Add one include path per line.
|
|
First given path is searched for contained header files first. If paths are relative to source files, this is not needed.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<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>
|
|
<varlistentry>
|
|
<term><option>--inconclusive</option></term>
|
|
<listitem>
|
|
<para>Allow that Cppcheck reports even though the analysis is inconclusive.
|
|
There are false positives with this option. Each result must be carefully investigated before you know if it is good or bad.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<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>
|
|
<varlistentry>
|
|
<term><option>-j <jobs></option></term>
|
|
<listitem>
|
|
<para>Start <jobs> threads to do the checking work.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--language=<language></option></term>
|
|
<listitem>
|
|
<para>Forces cppcheck to check all files as the given language. Valid
|
|
values are: c, c++</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--library=<cfg></option></term>
|
|
<listitem>
|
|
<para>Use library configuration.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--max-configs=<limit></option></term>
|
|
<listitem>
|
|
<para>Maximum number of configurations to check in a file before skipping it. Default is 12. If used together with --force, the last option is
|
|
the one that is effective.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--platform=<type></option></term>
|
|
<listitem>
|
|
<para>Specifies platform specific types and sizes.The available platforms are:
|
|
<glosslist>
|
|
<glossentry>
|
|
<glossterm>unix32</glossterm>
|
|
<glossdef>
|
|
<para>32 bit unix variant</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>unix64</glossterm>
|
|
<glossdef>
|
|
<para>64 bit unix variant</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>win32A</glossterm>
|
|
<glossdef>
|
|
<para>32 bit Windows ASCII character encoding</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>win32W</glossterm>
|
|
<glossdef>
|
|
<para>32 bit Windows UNICODE character encoding</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>win64</glossterm>
|
|
<glossdef>
|
|
<para>64 bit Windows</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
</glosslist>
|
|
By default the platform which was used to compile Cppcheck is used.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>-q</option></term>
|
|
<term><option>--quiet</option></term>
|
|
<listitem>
|
|
<para>Only print something when there is an error.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>-rp</option></term>
|
|
<term><option>-rp=<paths></option></term>
|
|
<term><option>--relative-paths;</option></term>
|
|
<term><option>--relative-paths=<paths></option></term>
|
|
<listitem>
|
|
<para>Use relative paths in output. When given, <paths> are used as base. You can separate multiple paths by ';'. Otherwise path where source files are searched is used. E.g. if given value is test, when checking test/test.cpp, the path in output will be test.cpp instead of test/test.cpp. The feature uses string comparison to create relative paths, so using e.g. ~ for home folder does not work. It is currently only possible to apply the base paths to files that are on a lower level in the directory tree.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--report-progress</option></term>
|
|
<listitem>
|
|
<para>Report progress when checking a file.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--rule=<rule></option></term>
|
|
<listitem>
|
|
<para>Match regular expression to create your own checks. E.g. rule "/ 0" can be used to check division by zero.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--rule-file=<file></option></term>
|
|
<listitem>
|
|
<para>Use given rule XML file. See https://sourceforge.net/projects/cppcheck/files/Articles/ for more info about the syntax.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>-s</option></term>
|
|
<term><option>--style</option></term>
|
|
<listitem>
|
|
<para>Deprecated, use --enable=style</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--std=<id></option></term>
|
|
<listitem>
|
|
<para>Set standard. The available options are:
|
|
<glosslist>
|
|
<glossentry>
|
|
<glossterm>posix</glossterm>
|
|
<glossdef>
|
|
<para>POSIX compatible code</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>c89</glossterm>
|
|
<glossdef>
|
|
<para>C code is C89 compatible</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>c99</glossterm>
|
|
<glossdef>
|
|
<para>C code is C99 compatible</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>c11</glossterm>
|
|
<glossdef>
|
|
<para>C code is C11 compatible (default)</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>c++03</glossterm>
|
|
<glossdef>
|
|
<para>C++ code is C++03 compatible</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
<glossentry>
|
|
<glossterm>c++11</glossterm>
|
|
<glossdef>
|
|
<para>C++ code is C++11 compatible (default)</para>
|
|
</glossdef>
|
|
</glossentry>
|
|
</glosslist>
|
|
Example to set more than one standards: 'cppcheck --std=c99 --std=posix file.cpp'
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--suppress=<spec></option></term>
|
|
<listitem>
|
|
<para>Suppress a specific warning. The format of <spec> is: [error id]:[filename]:[line].
|
|
The [filename] and [line] are optional.
|
|
[error id] may be * to suppress all warnings (for a specified file or files).
|
|
[filename] may contain the wildcard characters * or ?.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--suppressions-list=<file></option></term>
|
|
<listitem>
|
|
<para>Suppress warnings listed in the file.
|
|
Each suppression is in the format of <spec> above.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--template='<text>'</option></term>
|
|
<listitem>
|
|
<para>Format the error messages. E.g. '{file}:{line},{severity},{id},{message}' or '{file}({line}):({severity}) {message}'. Pre-defined templates: gcc, vs</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>-v</option></term>
|
|
<term><option>--verbose</option></term>
|
|
<listitem>
|
|
<para>More detailed error reports</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--version</option></term>
|
|
<listitem>
|
|
<para>Print out version information</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--xml</option></term>
|
|
<listitem>
|
|
<para>Write results in XML to error stream</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<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>
|
|
</variablelist>
|
|
</refsect1>
|
|
<refsect1 id="author">
|
|
<title>AUTHOR</title>
|
|
<para>The program was written by Daniel Marjamäki and Cppcheck team. See AUTHORS file for list of team members.</para>
|
|
</refsect1>
|
|
<refsect1 id="see_also">
|
|
<title>SEE ALSO</title>
|
|
<!-- In alpabetical order. -->
|
|
<para>Full list of features: http://cppcheck.wiki.sourceforge.net/</para>
|
|
</refsect1>
|
|
</refentry>
|