C# capabilities keep expanding from year to year. New features enrich software development. However, their advantages may not always be so obvious. For example, the good old yield. To some developers, especially beginners, it's like magic - inexplicable, but intriguing. This article shows how yield works and what this peculiar...
It’s been quite a while now since we last used PVS-Studio, an excellent static code analysis tool, on UE4. So we fired it up - not expecting much, to be honest, as the last time we ran the tool, UE4 was looking pretty clean. With a mixture of pulling across our recommended changes and making fixes themselves, the engine was...
Recently we found out that the new version of the fheroes2 project was released. In our company there are many fans of Heroes of Might and Magic game series. So, we couldn’t pass it up and checked the project by PVS-Studio.
In PVS-Studio, we often check various compilers’ code and post the results in our blog. Decompiler programs, however, seem to be a bit neglected. To restore justice in this world, we analyzed the ILSpy decompiler’s source code. Let’s take a look at the peculiar things PVS-Studio found.
Applications used in the field of Big Data process huge amounts of information, and this often happens in real time. Naturally, such applications must be highly reliable so that no error in the code can interfere with data processing. To achieve high reliability, one needs to keep a wary eye on the code quality of projects...
Independent game developers, whether single enthusiasts or teams, are faced with the grave problem of having to eliminate bugs from their code. Most independent developers and even studios can’t afford the amounts of resources available to large companies to spend on testing and long debugging. And here’s where the extensive...
Just before the release of the “Amnesia: Rebirth” game, the vendor “Fractional Games” opened the source code of the legendary “Amnesia: The Dark Descent” and its sequel “Amnesia: A Machine For Pigs”. Why not use the static analysis tool to see what dreadful mistakes are hidden in the inside of these cult horror...
We have classified our blog posts in several topics. Speaking of which, I suggest reading these articles on open source game projects and game engines checks.
This article is about the check of the OpenRA project using the static PVS-Studio analyzer. What is OpenRA? It is an open source game engine designed to create real-time strategies. The article describes the analysis process, project features, and warnings that PVS-Studio has issued. And, of course, here we will discuss some...
The American company Electronic Arts Inc (EA) has opened the source code of the games Command & Conquer: Tiberian Dawn and Command & Conquer: Red Alert publicly available. Several dozen errors were detected in the source code using the PVS-Studio analyzer, so, please, welcome the continuation of found defects review.
When developing the PVS-Studio static analyzer, we try to develop it in various directions. Thus, our team is working on plugins for the IDE (Visual Studio, Rider), improving integration with CI, and so on. Increasing the efficiency of project analysis under Unity is also one of our priority goals. We believe that static...
Emby is quite a popular media server along with Plex and Kodi. In this article, we’ll discuss the bugs found in its source code with the static analyzer PVS-Studio. The remark “Built with ReSharper” on the project’s official website makes the analysis even more interesting.
We know that Stack Overflow is a daily part of a lot of developers’ lives. I’ve heard from multiple people that they come here daily (if not more often) to get answers to their questions. Sometimes the answer to a question about code comes as a chunk of code. And sometimes that code makes it into production applications...
Several years ago, we decided that it was time to support SIMD code in .NET. We introduced the System.Numerics namespace with Vector2, Vector3, Vector4, Vector, and related types. These types expose a general-purpose API for creating, accessing, and operating on them using hardware vector instructions (when available). They also...
Multithreading is one of the most difficult aspects of programming and can cause a lot of headaches. The main source of problems is often improper usage of synchronization mechanisms, which can result in deadlocks or a complete lack of synchronization despite our expectations. The infamous deadlocks can be detected in runtime...
PVS-Studio to check Unreal Engine projects? (youtu.be)
What Is yield and How Does It Work in C#? (www.viva64.com)
C# capabilities keep expanding from year to year. New features enrich software development. However, their advantages may not always be so obvious. For example, the good old yield. To some developers, especially beginners, it's like magic - inexplicable, but intriguing. This article shows how yield works and what this peculiar...
The Consequence of the Missing References (www.coconutlizard.co.uk)
It’s been quite a while now since we last used PVS-Studio, an excellent static code analysis tool, on UE4. So we fired it up - not expecting much, to be honest, as the last time we ran the tool, UE4 was looking pretty clean. With a mixture of pulling across our recommended changes and making fixes themselves, the engine was...
Free Heroes of Might and Magic II: Open-Source Project that You Want to Be Part of (www.viva64.com)
Recently we found out that the new version of the fheroes2 project was released. In our company there are many fans of Heroes of Might and Magic game series. So, we couldn’t pass it up and checked the project by PVS-Studio.
A Spy Undercover: PVS-Studio to Check ILSpy Source Code (www.viva64.com)
In PVS-Studio, we often check various compilers’ code and post the results in our blog. Decompiler programs, however, seem to be a bit neglected. To restore justice in this world, we analyzed the ILSpy decompiler’s source code. Let’s take a look at the peculiar things PVS-Studio found.
Big / Bug Data: Analyzing the Apache Flink Source Code (www.viva64.com)
Applications used in the field of Big Data process huge amounts of information, and this often happens in real time. Naturally, such applications must be highly reliable so that no error in the code can interfere with data processing. To achieve high reliability, one needs to keep a wary eye on the code quality of projects...
PVS-Studio for Indie Developers (www.gamedev.net)
Independent game developers, whether single enthusiasts or teams, are faced with the grave problem of having to eliminate bugs from their code. Most independent developers and even studios can’t afford the amounts of resources available to large companies to spend on testing and long debugging. And here’s where the extensive...
Amnesia: The Dark Descent or How to Forget to Fix Copy Paste (www.viva64.com)
Just before the release of the “Amnesia: Rebirth” game, the vendor “Fractional Games” opened the source code of the legendary “Amnesia: The Dark Descent” and its sequel “Amnesia: A Machine For Pigs”. Why not use the static analysis tool to see what dreadful mistakes are hidden in the inside of these cult horror...
PVS-Studio & GameDev (www.viva64.com)
We have classified our blog posts in several topics. Speaking of which, I suggest reading these articles on open source game projects and game engines checks.
Unicorns break into RTS: analyzing the OpenRA source code (www.viva64.com)
This article is about the check of the OpenRA project using the static PVS-Studio analyzer. What is OpenRA? It is an open source game engine designed to create real-time strategies. The article describes the analysis process, project features, and warnings that PVS-Studio has issued. And, of course, here we will discuss some...
The Code of the Command & Conquer Game: Bugs from the 90's. Volume two (www.viva64.com)
The American company Electronic Arts Inc (EA) has opened the source code of the games Command & Conquer: Tiberian Dawn and Command & Conquer: Red Alert publicly available. Several dozen errors were detected in the source code using the PVS-Studio analyzer, so, please, welcome the continuation of found defects review.
How the PVS-Studio analyzer began to find even more errors in Unity projects (www.viva64.com)
When developing the PVS-Studio static analyzer, we try to develop it in various directions. Thus, our team is working on plugins for the IDE (Visual Studio, Rider), improving integration with CI, and so on. Increasing the efficiency of project analysis under Unity is also one of our priority goals. We believe that static...
Checking Emby with PVS-Studio (www.viva64.com)
Emby is quite a popular media server along with Plex and Kodi. In this article, we’ll discuss the bugs found in its source code with the static analyzer PVS-Studio. The remark “Built with ReSharper” on the project’s official website makes the analysis even more interesting.
Copying code from Stack Overflow? You might paste security vulnerabilities, too (stackoverflow.blog)
We know that Stack Overflow is a daily part of a lot of developers’ lives. I’ve heard from multiple people that they come here daily (if not more often) to get answers to their questions. Sometimes the answer to a question about code comes as a chunk of code. And sometimes that code makes it into production applications...
Hardware Intrinsics in .NET Core (devblogs.microsoft.com)
Several years ago, we decided that it was time to support SIMD code in .NET. We introduced the System.Numerics namespace with Vector2, Vector3, Vector4, Vector, and related types. These types expose a general-purpose API for creating, accessing, and operating on them using hardware vector instructions (when available). They also...
Avoid multithreading traps with Roslyn: Lock object selection (cezarypiatek.github.io)
Multithreading is one of the most difficult aspects of programming and can cause a lot of headaches. The main source of problems is often improper usage of synchronization mechanisms, which can result in deadlocks or a complete lack of synchronization despite our expectations. The infamous deadlocks can be detected in runtime...