Facebook 推出靜態分析工具:Facebook Infer

Facebook 推出了靜態分析工具 Facebook Infer,可以事先找出 AndroidiOS 上的 bug:Open-sourcing Facebook Infer: Identify bugs before you ship

從官方給的操作動畫中就可以看出來怎麼跑了。目前看起來支援三種程式語言,C、Objective-C、Java:

Facebook Infer is a static analysis tool - if you give Infer some Objective-C, Java, or C code, it produces a list of potential bugs.

在 Android 上 (Java) 會找出的類型:

Infer reports null pointer exceptions and resource leaks in Android and Java code.

iOS 上則只找 memory leak:

In addition to this, it reports memory leak problems in iOS and C code.

比較特別的是,這個工具是用 OCaml 寫:

Infer is a static analysis tool for Java, Objective-C and C, written in OCaml.

在 FreeBSD 上練習 Objective C...

一樣用 gcc 就可以練習了,首先要先裝 lang/gnustep-base:

cd /usr/ports/lang/gnustep-base; sudo make install clean

裝好後 compile 的兩個階段要對 gcc 加上不同的參數:

-I/usr/local/GNUstep/System/Library/Headers

以及:

-L/usr/local/GNUstep/System/Library/Libraries -lgnustep-base -lobjc

把這些參數整合到 Makefile 裡面就可以練習了。