Messages in this thread | | | Date | Wed, 13 Jul 2005 03:47:08 -0300 | From | Marcelo Tosatti <> | Subject | CP-Miner: A Tool for Finding Copy-paste and Related Bugs in Operating System Code |
| |
FYI, CP-Miner has binary-only version has been released for academic use.
http://opera.cs.uiuc.edu/Projects/ARTS/CP-Miner.htm
By Zhenmin Li, Shan Lu, Suvda Myagmar and Yuanyuan Zhou
Published in Proceedings of the Sixth Symposium on Operating System Design and Implementation (OSDI'04), Dec. 2004
Copy-pasted code is very common in large software because programmers prefer reusing code via copy-paste in order to reduce programming effort. Copy-paste is prone to introducing bugs. Recent studies show that a significant portion of operating system bugs concentrate in copy-pasted code. Unfortunately, it is very challenging to efficiently identify copy-pasted code in large software. Existing copy-paste detection tools are either not scalable to large software, or cannot handle small modifications in copy-paste. Furthermore, few tools are available to detect copy-paste related bugs.
In this paper, we propose a tool, called CP-Miner, that uses data mining techniques to efficiently identify copy-pasted code in large software including operating systems, and detect copy-paste related bugs. Specifically, it takes less than 20 minutes for CP-Miner to identify 190,000 and 150,000 copy-pasted segments in Linux and FreeBSD, respectively. The copy-pasted code accounts for 20-22% of code in Linux and FreeBSD. Similarly, CP-Miner also identifies many copy-pasted segments in the Apache Web Server and PostgresSQL, which account for 17.7-22% of code in these software.
Moreover, CP-Miner has detected 49 and 31 copy-paste related bugs in the latest versions of Linux and FreeBSD, respectively. Some of these bugs have been reported by us to the open source community and are then fixed by the developers.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |