Measuring Mangled Name Ambiguity in Large C / C++ Projects

The size and scale of software systems have grown rapidly over the course of the recent years. Largescale projects amounting up to million lines of code aren’t uncommon – e.g. the source code of the Linux kernel, with drivers, is around 17 million lines of code. This presents a challenge when it comes to understanding and navigability of the project. It is always essential to understand the precise behaviour of a software system when we are fixing a bug, or extending the system with a new functionality, and the importance of this understanding is preeminent when a major refactoring task is being undertaken. To enhance understanding of the project, we have to correlate the occurrences of symbols in the source code and how these symbols are present in the built binaries. This helps developers to understand the project they are working on better via code comprehension tools while helping automated defect detection via static analysis tools. Consider, though, that this correlation usually can’t be dis-

[1]  Gail C. Murphy,et al.  Using Visual Momentum to Explain Disorientation in the Eclipse IDE , 2006, Visual Languages and Human-Centric Computing (VL/HCC'06).

[2]  Gail C. Murphy,et al.  Asking and Answering Questions during a Programming Change Task , 2008, IEEE Transactions on Software Engineering.

[3]  Bjarne Stroustrup,et al.  The Annotated C++ Reference Manual , 1990 .

[4]  Richard C. Holt,et al.  Resolving linkage anomalies in extracted software system models , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[5]  Tibor Gyimóthy,et al.  A short introduction to Columbus/CAN , 2001 .

[6]  Tibor Gyimóthy,et al.  Columbus - reverse engineering tool and schema for C++ , 2002, International Conference on Software Maintenance, 2002. Proceedings..