GUI: Add help files that replace the gui-manual.md
This commit is contained in:
parent
4a76dbb632
commit
0a84a1fad7
|
@ -0,0 +1,22 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Investigating warnings</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Investigating warnings</h1>
|
||||
|
||||
<p>When you have run the analysis it is time to look at the results.</p>
|
||||
|
||||
<p>If you click on a warning then the corresponding code will be shown in the
|
||||
"Warning details" at the bottom.</p>
|
||||
|
||||
<p>You can right click warnings to get options. The difference of
|
||||
"hiding" a warning and "suppressing" a warning is that
|
||||
the suppression is permanent and hiding the warning is only temporary. When
|
||||
suppressing warning(s), that is saved in the project file.
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Preferences</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Preferences</h1>
|
||||
|
||||
<p><b>Number of threads</b><br>Number of threads to use in analysis. Each
|
||||
thread checks its own source file.</p>
|
||||
|
||||
<p><b>Force checking of all #ifdef configurations</b><br>Cppcheck try to check
|
||||
all code and will therefore guess different preprocessor configurations. The
|
||||
maximum number of configurations that is checked is 14 by default.</p>
|
||||
|
||||
<p><b>Show full path of files</b><br>Show the full paths in the results.</p>
|
||||
|
||||
<p><b>Show "No errors found" message when no errors found</b><br>
|
||||
If you want to get a message box about this.</p>
|
||||
|
||||
<p><b>Display error id column "Id"</b><br>Show error id in results</p>
|
||||
|
||||
<p><b>Enable inline suppressions</b><br>You can suppress warnings with comments.
|
||||
See the Cppcheck manual (http://cppcheck.sf.net/manual.pdf) for more information
|
||||
about inline suppressions.</p>
|
||||
|
||||
<p><b>Check for inconclusive errors also</b><br>When full analysis of the code
|
||||
can not determine if there should be a warning or not, it is inconclusive.
|
||||
Normally Cppcheck does not warn then.</p>
|
||||
|
||||
<p><b>Show statistics on check completion</b><br>Show statistics in a window
|
||||
when analysis finish.</p>
|
||||
|
||||
<p><b>Show internal warnings in log</b><br>Internal warnings (for debugging) is
|
||||
shown in the <i>Analysis log</i>.</p>
|
||||
|
||||
<p><b>Applications</b><br>Configure external editor to open from context menu
|
||||
when you right click on a warning.</p>
|
||||
|
||||
<p><b>Save all errors when creating report</b><br>If hidden warnings should be
|
||||
saved or not.</p>
|
||||
|
||||
<p><b>Save full path to files in report</b><br>If you use <i>Root path</i> the
|
||||
warnings on the screen will not have the full path.</p>
|
||||
|
||||
<p><b>Language</b><br>Configure language to use for GUI.</p>
|
||||
|
||||
<p><b>Python binary</b><br>To be able to execute addons, Cppcheck needs to know
|
||||
where python is. Unless you configure something, Cppcheck will try to execute
|
||||
python in your PATH.</p>
|
||||
|
||||
<p><b>Misra rule texts</b><br>Only needed if you want to use the Misra addon.
|
||||
Cppcheck is not legally allowed to distribute the Misra rule texts and these
|
||||
must be provided by users. The Misra rule texts are proprietary. An example
|
||||
rule text file:
|
||||
<blockquote><pre>Appendix A Summary of guidelines
|
||||
Rule 1.1
|
||||
Text of rule 1.1
|
||||
Rule 1.2
|
||||
Text of rule 1.2</pre></blockquote>
|
||||
</p>
|
||||
|
||||
<p><b>Clang path</b><br>The path to <i>clang</i> binary. If no path is provided
|
||||
then system PATH is used.</p>
|
||||
|
||||
<p><b>Visual studio headers</b><br>If you want to use the Visual Studio headers
|
||||
in the analysis you can provide the path(s) here. Hint: Open a visual studio
|
||||
command prompt and type <i>SET INCLUDE</i>. Then copy/paste the paths.</p>
|
||||
|
||||
<p><b>Code editor style</b><br>The visual theme to use for the code editor that
|
||||
is used when you investigate results.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,181 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Project File Dialog</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Project File Dialog</h1>
|
||||
|
||||
<p>The <i>Project file</i> dialog contains 4 tabs:</p>
|
||||
<ul>
|
||||
<li>Paths and defines; paths to check and basic preprocessor settings.
|
||||
<li>Types and Functions; configuration of platform and 3rd party libraries
|
||||
<li>Analysis; analysis options
|
||||
<li>Warning options; formatting warnings, suppressing warnings, etc
|
||||
<li>Addons; extra analysis with addons
|
||||
</ul>
|
||||
|
||||
<h2>Paths and defines</h2>
|
||||
|
||||
<p>It is recommended to import a project file.</p>
|
||||
|
||||
<h3> Import project</h3>
|
||||
|
||||
Project to import. Cppcheck will get:
|
||||
<ul>
|
||||
<li>What files to check
|
||||
<li>Preprocessor defines
|
||||
<li>Preprocessor include paths
|
||||
<li>Language standard if set
|
||||
</ul>
|
||||
|
||||
<h3>Paths (If you do not import project)</h3>
|
||||
|
||||
<p>What paths to check.</p>
|
||||
|
||||
<h3>Defines (If you do not import project)</h3>
|
||||
|
||||
<p>Cppcheck automatically checks the code with different preprocessor
|
||||
configurations.</p>
|
||||
|
||||
<blockquote><pre>#ifdef A
|
||||
code1
|
||||
#endif
|
||||
#ifdef B
|
||||
code2
|
||||
#endif</pre></blockquote>
|
||||
|
||||
<p>Cppcheck will automatically perform analysis both when A is defined and B is
|
||||
defined. So any bugs in both code1 and code2 will be detected.</p>
|
||||
|
||||
<p>If you want to configure that A will always be defined in Cppcheck analysis
|
||||
you can do that here.</p>
|
||||
|
||||
<p>Defines are separated by semicolon. So you can for instance write:</p>
|
||||
|
||||
<blockquote><pre>A;B=3;C</pre></blockquote>
|
||||
|
||||
<h3>Undefines (If you do not import project)</h3>
|
||||
|
||||
<p>Cppcheck automatically checks the code with different preprocessor
|
||||
configurations.</p>
|
||||
|
||||
<blockquote><pre>#ifdef A
|
||||
code1
|
||||
#endif
|
||||
#ifdef B
|
||||
code2
|
||||
#endif</pre></blockquote>
|
||||
|
||||
<p>Cppcheck will automatically perform analysis both when A is defined and B is
|
||||
defined. So any bugs in both code1 and code2 will be detected.</p>
|
||||
|
||||
<p>If you want to configure that A is never defined in Cppcheck analysis you
|
||||
can do that here.</p>
|
||||
|
||||
<p>Undefines are separated by semicolon. So you can for instance write:</p>
|
||||
|
||||
<blockquote><pre>A;C</pre></blockquote>
|
||||
|
||||
<h3>Include paths (If you do not import project)</h3>
|
||||
|
||||
<p>Specify include paths.</p>
|
||||
|
||||
<h2>Types and Functions</h2>
|
||||
|
||||
<p>Cppcheck uses the <i>Platform</i> setting to determine size of
|
||||
short/int/long/pointer/etc.</p>
|
||||
|
||||
<p>Check the libraries that you use in the <i>Libraries</i> listbox.</p>
|
||||
|
||||
<h2>Analysis</h2>
|
||||
|
||||
<h3>Cppcheck build dir</h3>
|
||||
|
||||
<p>This is a work-folder that Cppcheck uses. Each Cppcheck project should have
|
||||
a separate build dir. It is used for:</p>
|
||||
<ul>
|
||||
<li>whole program analysis
|
||||
<li>debug output
|
||||
<li>faster analysis (if a source file has changed check it, if source file is
|
||||
not changed then reuse old results)
|
||||
<li>statistics
|
||||
</ul>
|
||||
|
||||
<h3>Parser</h3>
|
||||
|
||||
<p>It is in general recommended to use Cppcheck parser. However you can choose
|
||||
to use Clang parser; Clang will be executed with a command line flag that tells
|
||||
it to dump its AST and Cppcheck will read that AST and convert it into a
|
||||
corresponding Cppcheck AST and use that.</p>
|
||||
|
||||
<h3>Analysis</h3>
|
||||
|
||||
<p>Configure what kind of analysis you want.</p>
|
||||
|
||||
<p>The <i>Normal analysis</i> is recommended for most use cases. Especially if
|
||||
you use Cppcheck in CI.</p>
|
||||
|
||||
<p>The <i>Bug hunting</i> can be used if you really want to find a bug in your
|
||||
code and can invest time looking at bad results and providing extra
|
||||
configuration.</p>
|
||||
|
||||
<h3>Limit analysis</h3>
|
||||
|
||||
<p>You can turn off checking of headers. That could be interesting if Cppcheck
|
||||
is very slow. But normally, you should check the code in headers.</p>
|
||||
|
||||
<p>It is possible to check the code in unused templates. However the Cppcheck
|
||||
AST will be incomplete/wrong. The recommendation is that you do not check
|
||||
unused templates to avoid wrong warnings. The templates will be checked
|
||||
properly when you do use them.</p>
|
||||
|
||||
<p>Max CTU depth: How deep should the whole program analysis be. The risk with
|
||||
a "too high" value is that Cppcheck will be slow.</p>
|
||||
|
||||
<p>Max recursion in template instantiation: Max recursion when Cppcheck
|
||||
instantiates templates. The risk with a "too high" value is that
|
||||
Cppcheck will be slow and can require much memory.</p>
|
||||
|
||||
|
||||
<h2>Warning options</h2>
|
||||
|
||||
<h3>Root path</h3>
|
||||
|
||||
<p>The root path for warnings. Cppcheck will strip away this part of the path
|
||||
from warnings. For instance if there is a warning in
|
||||
<pre>../myproject/foo/bar/file.cpp</pre> and the root path is
|
||||
<pre>../myproject/foo</pre> then the path for the warning will be
|
||||
<pre>bar/file.cpp</pre>.</p>
|
||||
|
||||
<h3>Warning Tags</h3>
|
||||
|
||||
<p>Tags allow you to manually categorize warnings.</p>
|
||||
|
||||
<h3>Exclude source files</h3>
|
||||
|
||||
<p>Excluded source files will not be analyzed by Cppcheck.</p>
|
||||
|
||||
<h3>Suppressions</h3>
|
||||
|
||||
<p>List of suppressions. These warnings will not be shown.</p>
|
||||
|
||||
<h2>Addons</h2>
|
||||
|
||||
<p><b>Y2038</b><br>32-bit timers that count number of seconds since 1970 will
|
||||
overflow in year 2038. Check that the code does not use such timers.</p>
|
||||
|
||||
<p><b>Thread safety</b><br>Check that the code is thread safe</p>
|
||||
|
||||
<p><b>Cert</b><br>Ensure that the Cert coding standard is followed</p>
|
||||
|
||||
<p><b>Misra</b><br>Ensure that the Misra coding standard is followed. Please
|
||||
note you need to have a textfile with the misra rule texts to get proper
|
||||
warning messages. Cppcheck is not legally allowed to distribute the misra
|
||||
rule texts.</p>
|
||||
|
||||
<p><b>Clang-tidy</b><br>Run Clang-tidy</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
<html>
|
||||
<head>
|
||||
<title>Standalone analysis</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Standalone analysis</h1>
|
||||
|
||||
<p>It is possible to quickly analyze files. Open the <i>Analyze</i> menu and click on
|
||||
either <i>Files...</i> or <i>Directory...</i>.</p>
|
||||
|
||||
<p>It is recommended that you create a project for analysis. A properly configured
|
||||
project will give you better analysis.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,22 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Tagging warnings</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Tagging warnings</h1>
|
||||
|
||||
<p>You can manually categorize warnings.</p>
|
||||
|
||||
<p>You choose the names of the categories yourself in the project file
|
||||
dialog.</p>
|
||||
|
||||
<p>If tag names are configured, then you can tag the warnings by
|
||||
right-clicking on them and selecting the proper tag in the
|
||||
context menu.</p>
|
||||
|
||||
<p>Tags are saved in the project file and will be permanent.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,270 +0,0 @@
|
|||
---
|
||||
title: Cppcheck GUI manual
|
||||
subtitle: Version 2.1.99
|
||||
author: Cppcheck team
|
||||
lang: en
|
||||
documentclass: report
|
||||
---
|
||||
|
||||
|
||||
# Standalone analysis
|
||||
|
||||
It is possible to quickly analyze files. Open the `Analyze` menu and click on
|
||||
either `Files...` or `Directory...`.
|
||||
|
||||
It is recommended that you create a project for analysis. A properly configured
|
||||
project will give you better analysis.
|
||||
|
||||
# Project
|
||||
|
||||
## Creating project
|
||||
|
||||
Open the `File` menu and click on `New project...`.
|
||||
|
||||
## Project options
|
||||
|
||||
The `Project file` dialog contains 4 tabs:
|
||||
- Paths and defines; paths to check and basic preprocessor settings.
|
||||
- Types and Functions; configuration of platform and 3rd party libraries
|
||||
- Analysis; analysis options
|
||||
- Warning options; formatting warnings, suppressing warnings, etc
|
||||
- Addons; extra analysis with addons
|
||||
|
||||
### Paths and defines
|
||||
|
||||
It is recommended to import a project file.
|
||||
|
||||
#### Import project
|
||||
|
||||
Project to import. Cppcheck will get:
|
||||
* what files to check
|
||||
* preprocessor defines
|
||||
* preprocessor include paths
|
||||
* language standard if set
|
||||
|
||||
#### Paths (If you do not import project)
|
||||
|
||||
What paths to check.
|
||||
|
||||
#### Defines (If you do not import project)
|
||||
|
||||
Cppcheck automatically checks the code with different preprocessor configurations.
|
||||
|
||||
#ifdef A
|
||||
code1
|
||||
#endif
|
||||
#ifdef B
|
||||
code2
|
||||
#endif
|
||||
|
||||
Cppcheck will automatically perform analysis both when A is defined and B is
|
||||
defined. So any bugs in both code1 and code2 will be detected.
|
||||
|
||||
If you want to configure that A will always be defined in Cppcheck analysis you
|
||||
can do that here.
|
||||
|
||||
Defines are separated by semicolon. So you can for instance write:
|
||||
|
||||
A;B=3;C
|
||||
|
||||
#### Undefines (If you do not import project)
|
||||
|
||||
|
||||
Cppcheck automatically checks the code with different preprocessor configurations.
|
||||
|
||||
#ifdef A
|
||||
code1
|
||||
#endif
|
||||
#ifdef B
|
||||
code2
|
||||
#endif
|
||||
|
||||
Cppcheck will automatically perform analysis both when A is defined and B is
|
||||
defined. So any bugs in both code1 and code2 will be detected.
|
||||
|
||||
If you want to configure that A is never defined in Cppcheck analysis you can
|
||||
do that here.
|
||||
|
||||
Undefines are separated by semicolon. So you can for instance write:
|
||||
|
||||
A;C
|
||||
|
||||
#### Include paths (If you do not import project)
|
||||
|
||||
Specify include paths.
|
||||
|
||||
### Types and Functions
|
||||
|
||||
Cppcheck uses `Platform` setting to determine size of short/int/long/pointer/etc.
|
||||
|
||||
Check the libraries that you use in the `Libraries` listbox.
|
||||
|
||||
### Analysis
|
||||
|
||||
#### Cppcheck build dir
|
||||
|
||||
This is a work-folder that Cppcheck uses. Each Cppcheck project should have a
|
||||
separate build dir. It is used for:
|
||||
* whole program analysis
|
||||
* debug output
|
||||
* faster analysis (if a source file has changed check it, if source file is
|
||||
not changed then reuse old results)
|
||||
* statistics
|
||||
|
||||
#### Parser
|
||||
|
||||
It is in general recommended to use Cppcheck parser. However you can choose to
|
||||
use Clang parser; Clang will be executed with a command line flag that tells it
|
||||
to dump its AST and Cppcheck will read that AST and convert it into a
|
||||
corresponding Cppcheck AST and use that.
|
||||
|
||||
#### Analysis
|
||||
|
||||
Configure what kind of analysis you want.
|
||||
|
||||
The `Normal analysis` is recommended for most use cases. Especially if you use
|
||||
Cppcheck in CI.
|
||||
|
||||
The `Bug hunting` can be used if you really want to find a bug in your code
|
||||
and can invest time looking at bad results and providing extra configuration.
|
||||
|
||||
#### Limit analysis
|
||||
|
||||
You can turn off checking of headers. That could be interesting if Cppcheck is
|
||||
very slow. But normally, you should check the code in headers.
|
||||
|
||||
It is possible to check the code in unused templates. However the Cppcheck AST
|
||||
will be incomplete/wrong. The recommendation is that you do not check unused
|
||||
templates to avoid wrong warnings. The templates will be checked properly when
|
||||
you do use them.
|
||||
|
||||
Max CTU depth: How deep should the whole program analysis be. The risk with a
|
||||
"too high" value is that Cppcheck will be slow.
|
||||
|
||||
Max recursion in template instantiation: Max recursion when Cppcheck
|
||||
instantiates templates. The risk with a "too high" value is that Cppcheck will
|
||||
be slow and can require much memory.
|
||||
|
||||
|
||||
### Warning options
|
||||
|
||||
#### Root path
|
||||
|
||||
The root path for warnings. Cppcheck will strip away this part of the path
|
||||
from warnings. For instance if there is a warning in
|
||||
`../myproject/foo/bar/file.cpp` and the root path is `../myproject/foo` then
|
||||
the path for the warning will be `bar/file.cpp`.
|
||||
|
||||
#### Warning Tags
|
||||
|
||||
Tags allow you to manually categorize warnings.
|
||||
|
||||
#### Exclude source files
|
||||
|
||||
Excluded source files will not be analyzed by Cppcheck
|
||||
|
||||
#### Suppressions
|
||||
|
||||
List of suppressions. These warnings will not be shown.
|
||||
|
||||
### Addons
|
||||
|
||||
Y2038 - 32-bit timers that count number of seconds since 1970 will overflow in
|
||||
year 2038. Check that the code does not use such timers.
|
||||
|
||||
Thread safety - Check that the code is thread safe
|
||||
|
||||
Cert - Ensure that the Cert coding standard is followed
|
||||
|
||||
Misra - Ensure that the Misra coding standard is followed. Please note you
|
||||
need to have a textfile with the misra rule texts to get proper warning
|
||||
messages. Cppcheck is not legally allowed to distribute the misra rule texts.
|
||||
|
||||
Clang-tidy - Run Clang-tidy
|
||||
|
||||
|
||||
# Preferences
|
||||
|
||||
`Number of threads`: Number of threads to use in analysis. Each thread checks
|
||||
its own source file.
|
||||
|
||||
`Force checking of all #ifdef configurations`: Cppcheck try to check all code
|
||||
and will therefore guess different preprocessor configurations. The maximum
|
||||
number of configurations that is checked is 14 by default.
|
||||
|
||||
`Show full path of files`: Show the full paths in the results.
|
||||
|
||||
`Show "No errors found" message when no errors found`: If you want to get a
|
||||
message box about this.
|
||||
|
||||
`Display error id column "Id"`: Show error id in results
|
||||
|
||||
`Enable inline suppressions`: You can suppress warnings with comments. See the
|
||||
Cppcheck manual (http://cppcheck.sf.net/manual.pdf) for more information about
|
||||
those.
|
||||
|
||||
`Check for inconclusive errors also`: When full analysis of the code can not
|
||||
determine if there should be a warning or not, it is inconclusive. Normally
|
||||
Cppcheck does not warn then.
|
||||
|
||||
`Show statistics on check completion`: Show statistics in a window when
|
||||
analysis finish.
|
||||
|
||||
`Show internal warnings in log`: Internal warnings (for debugging) is shown
|
||||
in the `Analysis log`.
|
||||
|
||||
`Applications`: Configure external editor to open from context menu when you
|
||||
right click on a warning.
|
||||
|
||||
`Save all errors when creating report`: If hidden warnings should be saved or
|
||||
not.
|
||||
|
||||
`Save full path to files in report`: If you use `Root path` the warnings on the
|
||||
screen will not have the full path.
|
||||
|
||||
`Language`: Configure language to use for GUI.
|
||||
|
||||
`Python binary`: To be able to execute addons, Cppcheck needs to know where
|
||||
python is. Unless you configure something, Cppcheck will try to execute python
|
||||
in your PATH.
|
||||
|
||||
`Misra rule texts`: Only needed if you want to use the Misra addon. Cppcheck is
|
||||
not legally allowed to distribute the Misra rule texts and these must be
|
||||
provided by users. The Misra rule texts are proprietary. An example rule text
|
||||
file can be found here: https://github.com/danmar/cppcheck/blob/main/addons/test/misra/misra2012_rules_dummy_ascii.txt
|
||||
|
||||
`Clang path`: The path to `clang` binary. If no path is provided then system
|
||||
PATH is used.
|
||||
|
||||
`Visual studio headers`: If you want to use the Visual Studio headers in the
|
||||
analysis you can provide the path(s) here. Hint: Open a visual studio command
|
||||
prompt and type `SET INCLUDE`. Then copy/paste the paths.
|
||||
|
||||
`Code editor style`: The visual theme to use for the code editor that is used
|
||||
when you investigate results.
|
||||
|
||||
|
||||
|
||||
# Looking at results
|
||||
|
||||
When you have run the analysis it is time to look at the results.
|
||||
|
||||
If you click on a warning then the corresponding code will be shown in the
|
||||
"Warning details" at the bottom.
|
||||
|
||||
You can right click warnings to get options. The difference of "hiding" a
|
||||
warning and "suppressing" a warning is that the suppression is permanent and
|
||||
hiding the warning is only temporary.
|
||||
|
||||
|
||||
# Tagging warnings
|
||||
|
||||
You can manually categorize warnings.
|
||||
|
||||
You choose the names of the categories yourself in the project file dialog.
|
||||
|
||||
If tag names are configured then when you look at results you can right click
|
||||
on a warning and tag it.
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue