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

** This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Request our prices
New License
License Renewal
--Select currency--
USD
EUR
GBP
RUB
* By clicking this button you agree to our Privacy Policy statement

** This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
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
The Last Line Effect

Date: 05.31.2014

Author: Andrey Karpov

I have studied many errors caused by the use of the Copy-Paste method, and can assure you that programmers most often tend to make mistakes in the last fragment of a homogeneous code block. I have ne…
The Evil within the Comparison Functions

Date: 05.19.2017

Author: Andrey Karpov

Perhaps, readers remember my article titled "Last line effect". It describes a pattern I've once noticed: in most cases programmers make an error in the last line of similar text blocks. Now I want t…
PVS-Studio ROI

Date: 01.30.2019

Author: Andrey Karpov

Occasionally, we're asked a question, what monetary value the company will receive from using PVS-Studio. We decided to draw up a response in the form of an article and provide tables, which will sho…
The Ultimate Question of Programming, Refactoring, and Everything

Date: 04.14.2016

Author: Andrey Karpov

Yes, you've guessed correctly - the answer is "42". In this article you will find 42 recommendations about coding in C++ that can help a programmer avoid a lot of errors, save time and effort. The au…
PVS-Studio for Java

Date: 01.17.2019

Author: Andrey Karpov

In the seventh version of the PVS-Studio static analyzer, we added support of the Java language. It's time for a brief story of how we've started making support of the Java language, how far we've co…
Free PVS-Studio for those who develops open source projects

Date: 12.22.2018

Author: Andrey Karpov

On the New 2019 year's eve, a PVS-Studio team decided to make a nice gift for all contributors of open-source projects hosted on GitHub, GitLab or Bitbucket. They are given free usage of PVS-Studio s…
Characteristics of PVS-Studio Analyzer by the Example of EFL Core Libraries, 10-15% of False Positives

Date: 07.31.2017

Author: Andrey Karpov

After I wrote quite a big article about the analysis of the Tizen OS code, I received a large number of questions concerning the percentage of false positives and the density of errors (how many erro…
Static analysis as part of the development process in Unreal Engine

Date: 06.27.2017

Author: Andrey Karpov

Unreal Engine continues to develop as new code is added and previously written code is changed. What is the inevitable consequence of ongoing development in a project? The emergence of new bugs in th…
How PVS-Studio Proved to Be More Attentive Than Three and a Half Programmers

Date: 10.22.2018

Author: Andrey Karpov

Just like other static analyzers, PVS-Studio often produces false positives. What you are about to read is a short story where I'll tell you how PVS-Studio proved, just one more time, to be more atte…
Appreciate Static Code Analysis!

Date: 10.16.2017

Author: Andrey Karpov

I am really astonished by the capabilities of static code analysis even though I am one of the developers of PVS-Studio analyzer myself. The tool surprised me the other day as it turned out to be sma…

Comments (0)

Next comments

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
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