在内部成功使用之后,Facebook 近日宣布开放其开发工具 RacerD 的开源版本,代码包含在静态代码分析工具 Infer 的代码库中。
据 Facebook 介绍,Infer 静态分析平台过去 10 个月内在 Android 代码库中捕获了超过 1000 种多线程问题。Race Condition 是程序在多线程多任务处理时,对有些共享资源进行操作(例如两个进程同时修改同一个数据时),导致整个处理过程变得混乱甚至锁死,引发 BU G。Race Condition 查找起来非常困难,开发者很难彻查一个 APP 中所有的潜在问题,因为 Race Condition 引发的 bug 并不持续,因此难以诊断。
Facebook 科学家 Blackshear 和 O’Hearn 写道,RacerD 能查出大多数 Race Condition 导致的 Bug ,虽然不能保证全部。
目前 RacerD 兼容 Java,下一步 Facebook 将进一步开发使 RacerD 能够兼容 C++ 。