loading...
Precise Call Graph Construction in the Presence of Function Pointers
Montreal, Canada October 01-October 01
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/SCAM.2002.1134115Second IEEE International Workshop on ...
 This Article 
 
PDF
HTML
 
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Ana Milanova, Rutgers University
Atanas Rountev, Rutgers University
Barbara G. Ryder, Rutgers University
The use of pointers presents serious problems for software productivity tools for software understanding, restructuring, and testing. Pointers enable indirect memory accesses through pointer dereferences, as well as indirect procedure calls (e.g., through function pointers in C). Such indirect accesses and calls can be disambiguated with pointer analysis. In this paper we evaluate the precision of a pointer analysis by Zhang et al. [20, 19] for the purposes of call graph construction for C programs with function pointers. The analysis is implemented in the context of a production-strength code-browsing tool from Siemens Corporate Research. The analysis uses an inexpensive, almost-linear, flow- and context-insensitive algorithm. To measure analysis precision, we compare the call graph computed by the analysis with the most precise call graph obtainable by a large category of pointer analyses. Surprisingly, for all our data programs the analysis from [20, 19] achieves the best possible precision. This result indicates that for the purposes of call graph construction, even inexpensive analyses can provide very good precision, and therefore the use of more expensive analyses may not be justified.
Citation:
Ana Milanova, Atanas Rountev, Barbara G. Ryder, "Precise Call Graph Construction in the Presence of Function Pointers," scam, pp.155, Second IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'02), 2002
Usage of this product signifies your acceptance of the Terms of Use.