In this section we describe working in the Windows environment. Working in the Linux environment is described in the section "How to run PVS-Studio on Linux".
The analysis results that PVS-Studio generates as its output after it has finished checking a project (either from the Visual Studio plugin or in command-line batch mode) are typically presented as an XML log file (".plog"). Using direct integration of C++ analyzer to the build system to perform the analysis produces an unparsed 'raw' log file. You can view these files in the PVS-Studio plugin for Visual Studio or in the C and C++ Compiler Monitoring UI (Standalone.exe). These formats, however, are not convenient for viewing directly in a text editor, sending them via email, and so on. PVS-Studio package comes with a number of utilities that allow you to manage such log files in a number of ways.
The analysis results can be filtered even before a start of the analysis by using the No Noise setting. When working on a large code base, the analyzer inevitably generates a large number of warning messages. Besides, it is often impossible to fix all the warnings straight out. Therefore, to concentrate on fixing the most important warnings first, the analysis can be made less "noisy" by using this option. It allows completely disabling the generation of Low Certainty (level 3) warnings. After restarting the analysis, the messages from this level will disappear from the analyzer's output.
When circumstances will allow it, and all of the more important messages are fixed, the 'No Noise' mode can be switched off – all of the messages that disappeared before will be available again.
To enable this setting use the Specific Analyzer Settings page.
When opening log file in a text editor, a user has to deal with XML markup or 'raw' unreadable log from the analyzer. To convert the analysis results into a more convenient format, use PlogConverter utility, which comes with PVS-Studio and can be found in the PVS-Studio installation directory ("C:\Program Files (x86)\PVS-Studio" by default). You can also download the source code of the utility.
Use the "'--help" option to display the basic information about the utility:
Let's take a closer look at the utility's parameters:
You can combine different format options by separating them with "," (no spaces), for example:
PlogConverter.exe D:\Projct\results.plog --renderTypes=Html,Csv,Totals
PlogConverter.exe D:\Projct\results.plog -t Html,Csv,Totals
"MessageType" can be set to one of the following types: GA, OP, 64, CS, MISRA, Fail
"MessageLevels" can be set to values from 1 to 3
You can combine different masks by separating the options with ";" (no spaces), for example (written in one line):
PlogConverter.exe D:\Projct\results.plog --renderTypes=Html,Csv,Totals --analyzer=GA:1,2;64:1
PlogConverter.exe D:\Projct\results.plog -t Html,Csv,Totals -a GA:1,2;64:1
The command format reflects the following logic: convert ".plog" into Html, Csv, and Totals formats, keeping only the general-analysis warnings (GA) of the 1-st and 2-nd levels and 64-bit warnings (64) of the 1-st level.
PlogConverter.exe D:\Projct\results.plog --renderTypes=Html,Csv,Totals --excludedCodes=V101,V102,V200
PlogConverter.exe D:\Projct\results.plog -t Html,Csv,Totals -d V101,V102,V200
The PlogConverter utility defines several non-zero exit codes, which do not necessarily indicate some issue with the operation of the tool itself, i.e. even when the tool returns something other when zero it does not always mean that the tool has 'crashed'. Here's the description of all possible exit codes, that PlogConverter can return.
Once you have the converted log files, you can send them to other people involved in the development (team leaders, development manager, and so on). This process can be automated by including the analysis step into scheduled "night" builds, where the log file will be converted into the required format and sent to the specified addressees.
Here is an example. Once you have a "fresh" analysis report converted into an HTML file, run SendEmail utility. We are interested in the following basic parameters:
You can also inform the developers by using the BlameNotifier utility, which comes with the PVS-Studio package. The following documentation section describes the ways how to use the utility: "Notifying the developer teams (blame-notifier utility)".