ACM Home Page
Please provide us with feedback. Feedback
Comparing call graphs
Full text PdfPdf (161 KB)
Source
Workshop on Program Analysis for Software Tools and Engineering archive
Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering table of contents
San Diego, California, USA
Pages: 37 - 42  
Year of Publication: 2007
ISBN:978-1-59593-595-3
Author
Ond∨rej Lhoták  Univesity of Waterloo, Waterloo, ON, Canada
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 76,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1251535.1251542
What is a DOI?

ABSTRACT

Comparing program analysis results from different static and dynamic analysis tools is difficult and therefore too rare, especially when it comes to qualitative comparison. Analysis results can be strongly affected by specific details of programs being analyzed, so quantitative evaluation should be supplemented by qualitative identification of those details. Our general aim is to develop tools to reduce the difficulty of qualitative comparison. In this paper, we focus on comparison of call graphs in particular. We present two complementary tools for comparing call graphs. Our main contribution is a call graph difference search tool that ranks call graph edges by their likelihood of causing large differences in the call graphs. This is complemented by a simple interactive call graph viewer that highlights specific differences between call graphs, and allows a user to browse through them. In a search for the causes of call graph differences, a user first uses the search tool to identify which of the thousands of spurious edges to look at more closely, and then uses the interactive viewer to determine in detail the root cause of a difference. We present the ranking algorithm used in the difference search tool. We also report on a case study using the comparison tools to determine the most important sources of imprecision in a typical static call graph by comparing it to a dynamic call graph of the same benchmark.


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
Graphviz - graph visualization software. http://www.graphviz.org/.
 
2
*J: A tool for dynamic analysis of java programs.http://www.sable.mcgill.ca/starj/.
 
3
Soot: a Java optimization framework. http://www.sable.mcgill.ca/soot/.
 
4
yEd - Java graph editor. http://www.yworks.com/en/products yed about.htm.
 
5
B. Dufour. Objective quantification of program behaviour using dynamic metrics. Master's thesis, McGill University, June 2004.
6
7
8
9
10
11
 
12
O. Lhoták. Spark: A flexible points-to analysis framework for Java. Master's thesis, McGill University, Dec. 2002.
 
13
O. Lhoták. Program Analysis using Binary Decision Diagrams. PhD thesis, McGill University, Jan. 2006.
 
14
O. Lhoták and L. Hendren. Scaling Java points-to analysis using Spark. In G. Hedin, editor, Compiler Construction, 12th International Conference, volume 2622 of LNCS, pages 153--169, Warsaw, Poland, Apr. 2003. Springer.
 
15
O. Lhoták and L. Hendren. Context-sensitive points-to analysis: is it worth it? In A.Mycroft and A. Zeller, editors, Compiler Construction, 15th International Conference, volume 3923 of LNCS, pages 47--64, Vienna, Mar. 2006. Springer.
16
 
17
18
19
20
 
21
22
23
 
24
B. G. Ryder. Dimensions of precision in reference analysis of objectoriented programming languages. In G. Hedin, editor, Compiler Construction, 12th International Conference, CC 2003, volume 2622 of Lecture Notes in Computer Science, pages 126--137. Springer, 2003.
25
 
26
Standard Performance Evaluation Corporation. SPEC JVM98 benchmarks. http://www.spec.org/osg/jvm98/.
27
28
29
30