How to work with the report of PVS-Studio in Linux
I want to warn all the users of Linux-version of PVS-Studio 6.10.
WARNING! I want to point out that the log file, generated right after the analysis cannot be used! It serves as a source of data for the plog-converter program and is not intended for viewing.
We are getting a large number of letters from people, saying that it's impossible to use the results of PVS-Studio analysis. Programmers get a huge file with thousands of identical messages per one header *.h file and other rubbish. They start complaining. Some probably don't complain, but silently lose their interest for PVS-Studio.
These files weren't meant to be viewed. Plog-converter utility, which is described in the documentation was created to convert them into a "human" format. This utility doesn't only convert the log, but removes the duplicates for h-files, filters the messages and so on. For example, it is most useful to start viewing the report with the general analysis warnings of the first and second level (key -a GA:1,2). This is very important, because otherwise the programmer may simply drown in the huge "sea" of messages.
In the next version, we are planning to change the format of the initial log file, so that it is clear that it is some binary format and it is not meant to be viewed. This should give a hint to a programmer that he needs to do something with this file and after reading the documentation he will learn about plog-converter.
P.S. I will answer one question in advance: "Could you make your program in such a way that it issues a filtered report right away?"
Yes, we could, but there are two reasons not to do so.
1. Speed. Now during the parallel analysis every process appends to the end of the file. Thus the file is blocked only for a single-time record. That's quite fast and different analysis processes don't wait for each other. If we start filtering the duplicates for h-files, there will be a need to do the search along the file. This is much longer and the processes will start waiting for each other. There will be more downtime and the time of analysis will increase.
2. The full list of all the messages allows doing different selections without the need to restart the full analysis. I.e. if there is a situation when a person views the report and realizes that he doesn't want to see the diagnostics of the 3rd level. Then he edits the settings, starts plog-converter and has a new report in a minute. Otherwise, he will have to wait for an hour for the project to be analyzed once more.