PVS-Studio FAQ
- Message "Files with C or C++ source code for analysis not found." appears while checking a group of projects or a separate C or C++ project.
- I get a huge amount of messages "V001. A code fragment from 'file' cannot be analyzed", the analyzer won't work at all.
- Why does multi-thread check (ThreadCount setting) sometimes work slower than single-thread check?
- Why does the tool have only Windows version? What are the difficulties of verifying the text files (containing source code) produced by different compilers?
- I don't have the PVS-Studio menu in Visual Studio Express Edition after installation. Why?
Message "Files with C or C++ source code for analysis not found." appears while checking a group of projects or a separate C or C++ project.
It means that projects are disabled in the common build through the Configuration Manager window of the Visual Studio environment.
To perform correct analysis of C or C++ projects with the PVS-Studio static analyzer, these projects must be compilable in Visual C++ and buildable without errors. That is why PVS-Studio performs analysis only of those projects that are included in the common build when checking a group of projects or a separate project.

Projects that are not included into the build will be skipped. If none of the existing projects are included into the build or if you choose to check a project not included into the build, the analyzer will show the message "Files with C or C++ source code for analysis not found" and analysis will not be launched. You may see what projects are enabled and disabled in the common build with the help of the Configuration Manager window for the current Visual Studio solution.
I get a huge amount of messages "V001. A code fragment from 'file' cannot be analyzed", the analyzer won't work at all.
The analyzer can sometimes fail to analyze a source code file. It is not always a fault of the analyzer; please read about the reasons for this behavior in the documentation for V001. Whatever the reason for displaying the V001 message, it is not crucial. As a rule, incomplete parse of a file is not very significant from the viewpoint of analysis. PVS-Studio simply skips a function/class with an error and continues analyzing the file. Only a very small code fragment remains unchecked.
Why does multi-thread check (ThreadCount setting) sometimes work slower than single-thread check?
The PVS-Studio requires rather large amount of memory. Perhaps the reason is that the analyzer is a lot and therefore everything slows down. Each running instance of the analyzer requires approx. 1.5 Gb of RAM. So, for instance, the configuration of 4 cores and 2 Gbytes might appear much slower than a system with 2 cores and 4 Gbytes of memory.
You may set the number of cores to be used during the analysis in the PVS-Studio's settings (the ThreadCount option).
Why does the tool have only Windows version? What are the difficulties of verifying the text files (containing source code) produced by different compilers?
Technically, it is easy to port the code of PVS-Studio.exe to a different platform since there are almost no Windows-specific functions being used there.
To create PVS-Studio for a different operating system, we must provide at least the same quality of the tool on a new platform as on the Windows-platform. To provide the high quality of PVS-Studio, we use a lot of various types of tests: static analysis, unit-tests, functional tests, UI tests, etc. Only after passing all these tests we can be sure that the analyzer behaves in the same way on a different platform as on the Windows-platform. Testing the analyzer takes about 30% of the general price of its development.
Also note that the files containing source code produced by the Visual C++ compiler contain particular constructs specific to this compiler. PVS-Studio supports them. Other compilers (for instance, GCC) also have their own specific constructs that we will have to support. This is an unapparent yet very large amount of work here. The fact that the '__restrict' key word is used 10 000 times more rarely than 'for' does not mean that we must not provide support for it. Many programmers even do not think about such things as __w64, __noop, __if_exists, __int3264, __uuidof, __based, __LPREFIX and so on and so forth.
Finally, sets of include files used in different systems are also different. If PVS-Studio supports include files of Visual C++, it does not necessarily mean that it will successfully handle GCC's include files.
Let's summarize everything written here. We can develop PVS-Studio for a different platform, but it is a serious task we are not intending to get involved into. If our customer wants to have PVS-Studio for some other platform, we can develop it at his expense.
I don't have the PVS-Studio menu in Visual Studio Express Edition after installation. Why?
No version of Visual Studio Express Edition supports extension packages - this is a restriction of this particular edition of Visual Studio, so there is no fault on PVS-Studio's side.