Facebook tool could help devs pinpoint elusive memory leaks


To help developers find hidden errors in their programs, Facebook has released as open source a tool that it uses to debug millions of lines of its own code.

The software, called Infer, could be useful to organizations and individuals building mobile and desktop apps and could use extra help debugging, said Facebook developer Peter O’Hearn, one of the tool’s creators.

Infer is a static program analyzer. Static analyzers do not test programs by running them. Instead, they mathematically examine the code for all the possible ways it could run, flagging incorrect or unfinished bits.

Infer is particularly well-suited for applications too large to be understood by any one programmer, O’Hearn said. It separates an application into a set of smaller parts so they can be examined more easily. It also remembers which parts of the application it has already analyzed, and doesn’t re-check them unless they have been modified.

Facebook has used Infer to inspect Facebook Messenger and Instagram, as well as its apps for the Android and iOS platforms.

Static analysis tools are not new. Companies such as Coverity, Parasoft, and Black Duck, among others, all offer commercial static analysis debuggers.

Infer’s obvious advantage over these products is that it’s free. It also is particularly well adapted to sniffing out memory leaks and null pointer access, both of which can be elusive to track down and are a predominant source of app crashes.

The current version can examine code written in C, Objective-C and Java. The Infer team hopes that, by open sourcing the software, others will add support for more languages.

Work on Infer started in Monoidics, which was founded in 2009 and purchased by Facebook in 2013. In addition to O’Hearn, Facebook developers Cristiano Calcagno and Dino Distefano also contributed heavily to Infer.

Drexel and CIO.com announce Analytics 50 award winners
View Comments
Join the discussion
Be the first to comment on this article. Our Commenting Policies