анализ

Откриване на междупроцедурни грешки в мащаб със статичен анализатор Infer — статия за принципа на работа на статичния анализатор Infer и основните му разлики от другите анализатори.

Infer е разработен във Facebook за намиране на грешки в C, C++, Objective-C и Java програми. В случая на Java, той може да открие грешки като нулев достъп, изтичане на ресурси, задънени блокировки и условия на състезание.

Основната разлика между този инструмент и другите е, че той може да използва знанието на цялото дърво на извикванията на метода, за да намери грешката. Като пример, авторите предоставят код, който взема обект, получен от един метод, и го предава на друг. Като може да анализира какви стойности връща първият метод и как го използва вторият метод, анализаторът може да предвиди, че първият метод може да върне нула, а вторият метод не тества своите аргументи за нула.