summaryrefslogtreecommitdiff
path: root/docs/misra/cppcheck.txt
blob: f7b9f678b4d591ac9f8814365dac02056c68f09f (plain)
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
Cppcheck for Xen static and MISRA analysis
==========================================

Xen can be analysed for both static analysis problems and MISRA violation using
cppcheck, the open source tool allows the creation of a report with all the
findings.

The minimum version required for cppcheck is 2.7. Note that at the time of
writing (June 2022), the version 2.8 is known to be broken [1].

Install cppcheck on the system
==============================

Cppcheck can be retrieved from the github repository or by downloading the
tarball, the version tested so far is the 2.7:

 - https://github.com/danmar/cppcheck/tree/2.7
 - https://github.com/danmar/cppcheck/archive/2.7.tar.gz

To compile and install it, the complete command line can be found in readme.md,
section "GNU make", please add the "install" target to that line and use every
argument as it is in the documentation of the tool, so that every Xen developer
following this page can reproduce the same findings.

This will compile and install cppcheck in /usr/bin and all the cppcheck config
files and addons will be installed in /usr/share/cppcheck folder, please modify
that path in FILESDIR if it's not convinient for your system.

If you don't want to overwrite a possible cppcheck binary installed in your
system, you can omit the "install" target and FILESDIR, cppcheck will be just
compiled and the binaries will be available in the same folder.
If you choose to do that, later in this page it's explained how to use a local
installation of cppcheck for the Xen analysis.

Dependencies are listed in the readme.md of the project repository.

Use cppcheck to analyse Xen
===========================

To analyse Xen using cppcheck, please refer to the document
xen-static-analysis.rst, section "Analyse Xen with Cppcheck".

[1] https://sourceforge.net/p/cppcheck/discussion/general/thread/bfc3ab6c41/?limit=25