To get a trial key
fill out the form below
Team License (a basic version)
Enterprise License (an extended version)
* By clicking this button you agree to our Privacy Policy statement

Request our prices
New License
License Renewal
--Select currency--
USD
EUR
RUB
* By clicking this button you agree to our Privacy Policy statement

Free PVS-Studio license for Microsoft MVP specialists
* By clicking this button you agree to our Privacy Policy statement

To get the licence for your open-source project, please fill out this form
* By clicking this button you agree to our Privacy Policy statement

I am interested to try it on the platforms:
* By clicking this button you agree to our Privacy Policy statement

Message submitted.

Your message has been sent. We will email you at


If you haven't received our response, please do the following:
check your Spam/Junk folder and click the "Not Spam" button for our message.
This way, you won't miss messages from our team in the future.

>
>
macOS 10.15 no longer supports 32-bit a…

macOS 10.15 no longer supports 32-bit apps. What can you do?

Oct 15 2019

On October 7, 2019, Apple released a new version of its Mac operating system, macOS Catalina. Version 10.15 contains many changes and improvements. One of the significant is the complete phasing out of 32-bit applications. As a developer of such macOS apps, what can you do? That's right, port the app to the 64-bit platform. Will the application work properly from the first attempt? Perhaps, it's possible. Depends on the complexity and amount of the code. But most likely, developers will face a lot of non-obvious errors, which can previously detected using PVS-Studio.

0680_macOS_64bit/image1.png

Introduction

Although it is technically possible to run 32-bit applications in the 64-bit environment, Apple has decided not to go down this path and complete the process of switching to the 64-bit platform which has started 10 years ago. For the user, this means that if the developer of the user's favorite app hasn't taken heed of porting it to the 64-bit platform in time, the app will simply stop working in the updated macOS Catalina.

It's not that Apple's decision was unexpected: in 2018, at the Worldwide Developers Conference, the company said that macOS Mojave would be the latest version of macOS with 32-bit software support. Probably most of the developers of popular apps have already successfully upgraded to 64-bit to the macOS Catalina release, or are completing the transition.

It should be noted that with all its apparent simplicity, porting of the application to a 64-bit platform has a lot of pitfalls. If some part of an application is written using the C++ language, the developer might need deep understanding of handling memory and pointers, as well as taking account of many non-obvious nuances. In this case usage of the tool, monitoring the code correctness when porting from 32 to a 64-bit platform, will be extremely helpful. PVS-Studio is one of the examples of such tools.

64-bit diagnostics

The PVS-Studio analyzer comprises a special group of diagnostics for such a case. Initially PVS-Studio was meant to analyze C/C++ code and search for errors occurring right in the result of porting to 64-bit. Only after that PVS-Studio evolved into the general-purpose analyzer: support of C# and Java languages, search for potential vulnerabilities, support of safe coding standards (for example, MISRA) and many other features became available.

Since then, we have accumulated a great deal of expertise on porting to a 64-bit platform. Our team wrote many articles on this topic. One of the articles on this topic: "A collection of examples of 64-bit errors in real programs". The article is quite old, but the problems described in it are also relevant today. I recommend reading it, especially if you're planning or already working on upgrading your apps to 64-bit (either apps in C++ for macOS or any other OS).

You can enable 64-bit warnings in the following way:

Windows/Visual Studio

In the warning view window there is a button to enable the entire group of 64-bit diagnostics:

0680_macOS_64bit/image2.png

Linux/macOS

When starting the analyzer from the console you need to enable 64-bit diagnostics both in the analyzer and the report generator:

pvs-studio-analyzer analyze ... -a 5 ...
plog-converter ... -a "64:1,2,3"

Conclusion

And, of course, nothing prevents you from downloading and trying the PVS-Studio analyzer on your code. Good luck in fighting against 64-bit and other errors!

Popular related articles
If the coding bug is banal, it doesn't mean it's not crucial

Date: Apr 19 2017

Author: Andrey Karpov

Spreading the word about PVS-Studio static analyzer, we usually write articles for programmers. However, some things are seen by programmers quite one-sided. That is why there are project managers wh…
Detecting Overflows of 32-Bit Variables in Long Loops in 64-Bit Programs

Date: Mar 22 2016

Author: Andrey Karpov

One of the problems that 64-bit software developers have to face is overflows of 32-bit variables in very long loops. PVS-Studio code analyzer is very good at catching issues of this type (see the Vi…
Is it possible to run 64-bit applications in a 32-bit OS?

Date: Dec 08 2015

Author: Andrey Karpov

Nowadays 64-bit operating systems are very widespread. But 32-bit OS are still present on the market, in quite obvious quantities. A lot of modern program tools are developed to be run only in 64-bit…
How to Port a 9 Million Code Line Project to 64 bits?

Date: Aug 03 2015

Author: Evgeniy Ryzhkov, Ilya Ivanov

Our team has recently finished porting one pretty large project (9 million code lines, 300 Mbytes of source files) to the 64-bit platform. It took us one year and a half. Although we are not permitte…
64-Bit Code in 2015: New in the Diagnostics of Possible Issues

Date: May 21 2015

Author: Sergey Vasiliev

64-bit issues are pretty hard to detect because they are like a timebomb: it may take quite a while before they show up. The PVS-Studio static analyzer makes it easier to find and fix such errors. Bu…

Comments (0)

Next comments
This website uses cookies and other technology to provide you a more personalized experience. By continuing the view of our web-pages you accept the terms of using these files. If you don't want your personal data to be processed, please, leave this site.
Learn More →
Accept