PVS-Studio 6.04 Site License
PVS-Studio 6.04 Site License | 44 Mb
The PVS-Studio tool is intended for developers of contemporary applications and it integrates into the Visual Studio 2015, 2013, 2012, 2010, 2008, 2005 environments providing the programmer with a convenient user interface to analyze files, navigate through code and get reference information. You do not need to study documentation and settings preliminarily to work with the analyzer. The analyzer is ready to work right after it is installed.
PVS-Studio Features
Integration with Visual Studio 2015, 2013, 2012, 2010, 2008, 2005;
incremental analysis is the automatic triggering of the analyzer at the moment immediately after compilation commences at developer's local system;
build-system independent file verification (through the compiler invocation monitoring system) by PVS-Studio Standalone;
online-help;
pdf-documentation;
saving and loading of analysis results;
capability of command line launch;
support of all cores and processors;
estimate of complexity of 64-bit code migration;
interactive filters;
convenient integration into the team development process;
marking of program text with the purpose of checking new code only.
PVS-Studio Advantages
Easy-to-download! You may download the PVS-Studio distribution package without registering and filling in any forms.
Easy-to-try! The PVS-Studio program is implemented as a plug-in for Visual Studio. The program is simple to install and does not require special setting before getting started.
Easy-to-buy! Unlike other code analyzers, we have simple pricing and licensing policy. We will not ask you what size your application's code is or thrust training courses on you by phone. You decide what you need on the order page, pay the purchase and get the registration key by e-mail.
Easy-to-support! It is the analyzer's developers who directly communicate with users, which enables you to quickly get answers to even complicated questions related to programming.
Supported languages and dialects
Visual Studio 2015 C, C++, C++11, C++/CLI, C++/CX (WinRT)
Visual Studio 2013 C, C++, C++11, C++/CLI, C++/CX (WinRT)
Visual Studio 2012 C, C++, C++11, C++/CLI, C++/CX (WinRT)
Visual Studio 2010 C, C++, C++/CLI, C++0x
Visual Studio 2008 C, C++, C++/CLI
Visual Studio 2005 C, C++, C++/CLI
MinGW C, C++, C++11
PVS-Studio is a static analyzer that detects errors in source code of C/C++ applications. There are sets of rules included into PVS-Studio:
General-purpose diagnosis
Detection of possible optimizations
Diagnosis of 64-bit errors (Viva64)
To learn more about each type of diagnosis, visit the corresponding pages.
The methodology of static code analysis we employ has significant advantages over other types of analysis since it allows you to cover the whole program code. The procedure of code check cannot damage the code itself in any way. The analysis process is completely controlled by person and it is the programmer who decides if it needs modification.
PVS-Studio 6.04
V753. The '&=' operation always sets a value of 'Foo' variable to zero.
V754. The expression of 'foo(foo(x))' pattern is excessive or contains an error.
V3082. The 'Thread' object is created but is not started. It is possible that a call to 'Start' method is missing.
V3083. Unsafe invocation of event, NullReferenceException is possible. Consider assigning event to a local variable before invoking it.
V3084. Anonymous function is used to unsubscribe from event. No handlers will be unsubscribed, as a separate delegate instance is created for each anonymous function declaration.
V3085. The name of 'X' field/property in a nested type is ambiguous. The outer type contains static field/property with identical name.
V3086. Variables are initialized through the call to the same function. It's probably an error or un-optimized code.
V3087. Type of variable enumerated in 'foreach' is not guaranteed to be castable to the type of collection's elements.
V3088. The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.
V3089. Initializer of a field marked by [ThreadStatic] attribute will be called once on the first accessing thread. The field will have default value on different threads.
V3090. Unsafe locking on an object.
V3091. Empirical analysis. It is possible that a typo is present inside the string literal. The 'foo' word is suspicious.
V3092. Range intersections are possible within conditional expressions.
V3093. The operator evaluates both operands. Perhaps a short-circuit operator should be used instead.
V753. The '&=' operation always sets a value of 'Foo' variable to zero.
V754. The expression of 'foo(foo(x))' pattern is excessive or contains an error.
V3082. The 'Thread' object is created but is not started. It is possible that a call to 'Start' method is missing.
V3083. Unsafe invocation of event, NullReferenceException is possible. Consider assigning event to a local variable before invoking it.
V3084. Anonymous function is used to unsubscribe from event. No handlers will be unsubscribed, as a separate delegate instance is created for each anonymous function declaration.
V3085. The name of 'X' field/property in a nested type is ambiguous. The outer type contains static field/property with identical name.
V3086. Variables are initialized through the call to the same function. It's probably an error or un-optimized code.
V3087. Type of variable enumerated in 'foreach' is not guaranteed to be castable to the type of collection's elements.
V3088. The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.
V3089. Initializer of a field marked by [ThreadStatic] attribute will be called once on the first accessing thread. The field will have default value on different threads.
V3090. Unsafe locking on an object.
V3091. Empirical analysis. It is possible that a typo is present inside the string literal. The 'foo' word is suspicious.
V3092. Range intersections are possible within conditional expressions.
V3093. The operator evaluates both operands. Perhaps a short-circuit operator should be used instead.
[/b]
[b] Only for V.I.P
Warning! You are not allowed to view this text.