ACM Home Page
Please provide us with feedback. Feedback
Analyzing dynamic call graphs enhanced with program state information for feature location and understanding
Full text PdfPdf (169 KB)
Source
International Conference on Software Engineering archive
Companion of the 30th international conference on Software engineering table of contents
Leipzig, Germany
SESSION: Informal research demonstrations table of contents
Pages 915-916  
Year of Publication: 2008
ISBN:978-1-60558-079-1
Authors
Johannes Bohnet  Hasso-Plattner-Institut at University of Potsdam, Potsdam, Germany
Juergen Doellner  Hasso-Plattner-Institut at University of Potsdam, Potsdam, Germany
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 32,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1370175.1370185
What is a DOI?

ABSTRACT

In this paper we present a prototype tool for locating and understanding features in unfamiliar source code of complex C/C++ software systems. The key concepts of the analysis tool are (1) combining dynamic function call graphs with information on the functions' containment within hierarchically structured modules and (2) providing means of gathering program state information on user-defined locations within the call graph. Starting from a typically huge dynamic call graph logged during feature execution, developers narrow their search for functions implementing the feature's core functionality by successively pruning the graph from feature-irrelevant functions. The assessment whether a function contributes to a feature is performed on various levels of abstraction, namely on (1) module containment, (2) on the function's call relations, and (3) on the way it modifies data. Having sorted out feature-irrelevant functions this way, users are able to analyze the remaining, probably highly feature-relevant functions with other heavy-weight analysis techniques, such as debugging techniques, to get a deep understanding of the feature implementation.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
Bohnet, J. and Döllner, J. 2007. Visually Exploring Control Flow Graphs to Support Legacy Software Migration. In Proceedings of the GI Conference on Software Engineering SE07, pp. 245--246.
 
3
Bohnet, J. and Döllner, J. 2007. Facilitating Exploration of Unfamiliar Source Code by Providing 2-1/2-D Visualizations of Dynamic Call Graphs. In Proceedings of the IEEE Int''l Workshop on Visualizing Software for Understanding and Analysis VISSOFT, pp. 63--66.
 
4
Bohnet, J. and Döllner, J. 2007. CGA Call Graph Analyzer - Locating and Understanding Functionality within the Gnu Compiler Collection''s Million Lines of Code. In Proceedings of the IEEE Int''l Workshop on Visualizing Software for Understanding and Analysis VISSOFT, pp. 161--162.

Collaborative Colleagues:
Johannes Bohnet: colleagues
Juergen Doellner: colleagues