Title :
Static Call Graph Generator for C++ using Debugging Information
Author :
Terashima, Yui ; Gondow, Katsuhiko
Author_Institution :
Tokyo Inst. of Technol., Tokyo
Abstract :
In this paper, we present a novel method to detect virtual functions in C+ + programs using a light-weight binary-level analysis. We developed a tool, dcgg, that statically generates call graphs for C++ using DWARF2 debugging information based on this method. We use a combination of a binary analysis and debugging information to detect static function calls (including inline expanded functions) simply and precisely, and also virtual function calls (dynamic function calls in C++). Virtual function calls are detected by tracing types in registers and the stack. In a preliminary evaluation dcgg generated precise call graphs including inline expansions and virtual function calls. These techniques are important to C++ programmers as they help in creating efficient and maintainable code.
Keywords :
C++ language; graph theory; program debugging; C++ programs; DWARF2 debugging information; binary-level analysis; static call graph generator; static function call detection; virtual function; Binary codes; Computer aided software engineering; Costs; Debugging; Information analysis; Information security; Open source software; Programming profession; Prototypes; Software engineering;
Conference_Titel :
Software Engineering Conference, 2007. APSEC 2007. 14th Asia-Pacific
Conference_Location :
Aichi
Print_ISBN :
0-7695-3057-5
DOI :
10.1109/ASPEC.2007.46