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
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. It is based on the following mechanism: on finishing the analysis, the analyzer generates a ".plog" file, which is then passed to BlameNotifier with some additional parameters. The utility finds the files with potential errors and forms an individual HTML report for each "guilty" developer. Another option is to send a complete log file with all the warnings sorted by the names of the developers responsible for the code that triggered those warnings.
BlameNotifier utility can be found in the PVS-Studio install directory ("C:\Program Files (x86)\PVS-Studio" by default). Use the "--help" option to display the basic information about the utility:
Let's take a closer look at the utility's parameters:
# Recipients of complete log file username_1 *email_1 ... username_N *email_N # Recipients of individually assigned warnings username_1 email_1 ... username_N email_N
Comments could be written with the "#" character. For recipients of the complete report, you need to add the "*" character before or after their email addresses. The complete log file will include all the warnings sorted by the developers.
BlameNotifier can also use the parameters of PlogConverter, namely (see the descriptions in the corresponding section above):
This feature allows you to filter the analysis results before sending them.
For example (written in one line):
BlameNotifier.exe "Drive:\Path\To\Plog" --VCS=Git --recipientsList="Drive:\Path\To\recipientsList.txt" --server="smtp.gmail.com" --sender=... --login=... --password=... --srcRoot="..." --maxTasks=40
Despite the built-in log-viewing features of PVS-Studio, there are other ways to view the analysis log. You can convert the XML file with the analyzer warnings into one of the formats that can be conveniently opened in other applications (html, txt, csv) by using PlogConverter utility. A converted report can be automatically sent on a daily basis to the persons involved in the development to inform them about the analyzer warnings (SendEmail utility). In addition, BlameNotifier utility can be used to automate the process of finding the developers responsible for writing code that triggered certain warnings. BlameNotifier will send html messages to these developers and also prepare a complete report for "special" persons with the warnings sorted by the "guilty" developers.