File: projectfiledialog.html

package info (click to toggle)
cppcheck 2.18.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 26,132 kB
  • sloc: cpp: 268,935; python: 20,890; ansic: 8,090; sh: 1,045; makefile: 1,008; xml: 1,005; cs: 291
file content (179 lines) | stat: -rw-r--r-- 5,174 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<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 &quot;too high&quot; value is that Cppcheck will be slow.</p>

<p>Max recursion in template instantiation: Max recursion when Cppcheck
instantiates templates. The risk with a &quot;too high&quot; 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>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>