|
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
|
Bruno Dufour , Karel Driesen , Laurie Hendren , Clark Verbrugge, Dynamic metrics for java, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
 |
7
|
Bruno Dufour , Laurie Hendren , Clark Verbrugge, *J: a tool for dynamic analysis of Java programs, Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 26-30, 2003, Anaheim, CA, USA
[doi> 10.1145/949344.949425]
|
 |
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
|
Markus Mock , Manuvir Das , Craig Chambers , Susan J. Eggers, Dynamic points-to sets: a comparison with static analyses and potential applications in program understanding and optimization, Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, p.66-72, June 2001, Snowbird, Utah, United States
[doi> 10.1145/379605.379671]
|
| |
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
|
Philip A. Stocks , Barbara G. Ryder , William A. Landi , Sean Zhang, Comparing flow and context sensitivity on the modification-side-effects problem, Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis, p.21-31, March 02-04, 1998, Clearwater Beach, Florida, United States
|
 |
28
|
Frank Tip , Jens Palsberg, Scalable propagation-based call graph construction algorithms, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.281-293, October 2000, Minneapolis, Minnesota, United States
|
 |
29
|
|
 |
30
|
|
|