Bbabo NET

Science & Technology News

PVS-Studio 7.28: ARM support, .NET 8, Unreal Engine analysis without Unity Build

A new release of PVS-Studio has been released - 7.28. Now you can run analysis on ARM architecture, .NET 8 and Unreal Engine without Unity Build, and that's not all! More details in this press release.

You can download the current version of PVS-Studio here.

ARM architecture support

The PVS-Studio analyzer has added support for working on the ARM platform on the Windows operating system. Support works in compatibility mode with x64 architecture.

Next year it is planned to implement a native ARM version of the analyzer for operating systems of the macOS family.

Support for analyzing .NET 8 projects

PVS-Studio C# supported the analysis of projects using .NET 8.

The C# analyzer itself for Linux and macOS now runs on .NET 8.

Analysis of Unreal Engine projects without Unity Build

When checking Unreal Engine projects using PVS-Studio, problems often arise with excessive memory consumption and slowdown of analysis caused by the use of the system for combining translation units into one file (Unity Build).

Although using such a system can have a positive impact on compilation time, the large file size can lead to increased consumption of resources required for analysis.

We have supplemented the documentation on analyzing Unreal Engine projects with a paragraph about setting up the analysis to run without using Unity Build, but with the ability to use this mode to build the project.

Support for relative paths in SARIF

Reports in the SARIF format received support for relative paths to the analyzed files according to the standard documentation.

More details about reports in the SARIF format can be found in the documentation.

Using wildcard patterns in CLMonitor

Now CLMonitor (a build monitoring utility on Windows) supports wildcard patterns in compilation commands.

More details about using the CLMonitor utility can be found in the documentation.

Finalizing .pvsconfig in the C# analyzer

In the C# analyzer, the ability to enable and disable individual diagnostics using .pvsconfig analyzer configuration files has been improved and unified with other analyzers.

Example:

This entry will eliminate the triggering of diagnostics V3022 and V5623 at the 'High' and 'Low' levels.

More details about the use of diagnostic configuration files .pvsconfig can be found in the documentation.

Improved diagnostics in the C# analyzer

The C# analyzer has improved work with parameters that have null as the default value.

This allows V3080 diagnostics to find more null reference dereference problems.

Let's look at an example from a real project of what the analyzer can now detect:

public MyEffectInstance CreateEffect( IMySourceVoice input, MyStringHash effect, MySourceVoice[] cues = null, //

PVS-Studio 7.28: ARM support, .NET 8, Unreal Engine analysis without Unity Build