Model checking system software with CMC
Model checking system software with CMC
复制标题
带 CMC 的模型检查系统软件
DOI:
10.1145/1133373.1133418
复制
发表时间:
2002
期刊:
影响因子:
--
通讯作者:
D. Engler
中科院分区:
文献类型:
--
作者:
M. Musuvathi;Andy Chou;D. Dill;D. Engler
Complex systems have errors that involve mishandled corner cases in intricate sequences of events. Conventional testing techniques usually miss these errors. In recent years, formal verification techniques such as [5] have gained popularity in checking a property in all possible behaviors of a system. However, such techniques involve generating an abstract model of the system. Such an abstraction process is unreliable, difficult and miss a lot of implementation errors.CMC is a framework for model checking a broad class of software written in the C programming language. CMC runs the software implementation directly without deriving an abstract model of the code. We used CMC to model check an existing implementation of AODV (Ad Hoc On Demand Distance Vector) routing protocol and found a total of 29 bugs in two implementations [7],[6] of the protocol. One of them is a bug in the actual specification of the AODV protocol [3]. We also used CMC on the IP Fragmentation module in the Linux TCP/IPv4 stack and verified its correctness for up to 4 fragments per packet.