關於 Infer
Infer 是一個靜態程式分析工具,可以對 Java、C 和 Objective-C 程式進行分析,此工具是用OCaml寫成的。
Infer 最早部署在 Facebook 內部,用於發布移動套用之前對每一行代碼進行分析,Facebook 使用此工具分析所開發的 Android、iOS 套用,包括 Facebook Messenger、Instagram 和其他一些套用。 Infer 不僅僅用於移動應用程式的分析,還可以分析 C、Java 等不是 Android 系統的代碼。 Infer 著重於發現一些諸如空指針的訪問、資源和記憶體的泄露等導致手機程式崩潰或性能嚴重下降的問題。
Infer 源自 2013 年收購的一家初創企業 Monoidics。Monoidics 本身就是根據最近的學術研究成果,特別是在 separation logic 和 bi-abduction。在 Facebook 內部,Infer 進行持續的疊代開發,並根據從開發者收集的反饋進行相應的調整。開源之後我們將繼續開發 Infer,已造福其他使用者,並且我們可以與社區的其他開發者已開發出更好的程式檢驗技術為目標而為之奮鬥。
特性
Android 和 Java
Infer 可檢查 Android 和 Java 代碼中的 NullPointException 和 資源泄露。
iOS
除了以上,Infer 還可發現 iOS 和 C 代碼中的記憶體泄露。
下載Infer
I Infer源碼