• The first step towards PVS-Studio for C#

    The PVS-Studio team would like to share some news and heat up the audience interest a bit. We have started C# analyzer development. From the user's point of view it'll still be our good old PVS-Studio, but now we'll teach it how to look for bugs in C# programs. Read more
  • An Ideal Way to Integrate a Static Code Analyzer into a Project

    One of the most difficult things about using static analysis tools is managing false positives. There are a number of ways to eliminate them using the analyzer's settings or changing the code itself. I took a small project Apple II emulator for Windows as an example to show you how you can handle PVS-Studio's analysis report, and demonstrate by a number of examples how to fix errors and suppress false positives. Read more
  • How Do Programs Run with All Those Bugs At All?

    Our team analyzes lots of open-source projects to demonstrate the diagnostic capabilities of the PVS-Studio analyzer. After reading our articles, people will often ask: "How does the program run with all those bugs at all?" In this article, I will try to answer this question. Read more
  • How to Launch the PVS-Studio Analyzer

    Every now and then, we receive e-mails reading something like "After I have installed the analyzer, I find the PVS-Studio.exe file, launch it, but it wouldn't work". Since these are not rare, single cases, I think we should clarify on the subject. Read more
  • We are Closing Down the CppCat Project

    One odd year ago, we decided to carry out an experiment and release a tool for small teams and single developers as an alternative to the PVS-Studio static code analyzer. This is how a very inexpensive analyzer CppCat was born. Now we can sum up the results of that experiment and admit that it has failed. During its short lifetime, this project has brought us almost as much money as we had put into its development, promotion, and maintenance. Thus, the project has proved unprofitable. And we could have spent all that time (the most valuable resource) on improving PVS-Studio instead, couldn't we? So we have to close down the CppCat project and focus on PVS-Studio. I hope you will find it interesting to learn from someone else's experience of launching a new business idea, for negative experience is still experience. Read more
  • PVS-Studio: New Trial Mode

    Sometimes we experiment with the PVS-Studio analyzer's trial mode to make it as efficient as possible for users to get started with. Recently, we again have changed the format of the trial version. This note is intended to answer every possible question developers may want to ask when starting to work with our tool. This article is in fact the answer to the question, "can I try the demo version and what limitations does it have?". Read more
  • Bugs. Bugs Never Change

    What you have just opened is the article you should link to in your Twitter or post in your favorite programmer public. This will benefit both us and the open-source software community. We analyze open-source projects and help make them better to get programmers all over the world to learn about PVS-Studio. Meanwhile, we write interesting and helpful articles. The more people get to know about them, the more pleased we'll be doing that and the more projects we will check. Everyone profits - sounds great, doesn't it?. Read more
  • LibreOffice Project's Check

    We invite you to read a new article about how we analyzed another well-known open-source project. This time it is the LibreOffice office suite that I have examined. The project is developed by more than 480 programmers. We have found that it is pretty high-quality and that it is regularly checked by the Coverity static analyzer. But, like in any other large project, we still managed to find previously undetected bugs and defects and in this article we are going to discuss them. Just for a change, this time we will be accompanied by cows instead of unicorns. Read more
  • Null Pointer Dereferencing Causes Undefined Behavior

    I have unintentionally raised a large debate recently concerning the question if it is legal in C/C++ to use the &P->m_foo expression with P being a null pointer. The programmers' community divided into two camps. The first claimed with confidence that it wasn't legal while the others were as sure saying that it was. Both parties gave various arguments and links, and it occurred to me at some point that I had to make things clear. For that purpose, I contacted Microsoft MVP experts and Visual C++ Microsoft development team communicating through a closed mailing list. They helped me to prepare this article and now everyone interested is welcome to read it. For those who can't wait to learn the answer: That code is NOT correct. Read more
  • PVS-Studio for Visual C++

    Many of our articles are concentrated on anything but the PVS-Studio analyzer itself. We tell our readers about projects we have checked, nuances of C++ language, creation of plugins in C#, running PVS-Studio from the command line... But PVS-Studio was first of all designed for Visual Studio users. We have done a lot to make their work with the tool as comfortable as possible. But this particular fact is very often left outside the frame. I've decided to improve the situation and tell you about the PVS-Studio plugin from scratch. If you work in Visual C++, this article is for you. Read more