| | |
Summary: Call Graph Extraction in the Presence of Function Pointers
Darren C. Atkinson
Department of Computer Engineering
Santa Clara University
500 El Camino Real
Santa Clara, CA 95053-0566
Abstract Software engineers need to understand pro-
grams in order to effectively maintain them. The call
graph, which presents the calling relationships between
functions, is a useful representation of a program that
can aid understanding. For programs without the use
of function pointers, the call graph can be extracted by
parsing the program. However, for programs with func-
tion pointers, call graph extraction is nontrivial. Many
commonly used C programs utilize function pointers for
efficiency and ease of implementation. We present dif-
ferent techniques for extracting the call graph in the
presence of function pointers and demonstrate our tech-
niques on several commonly available programs. Our
results show that unless function pointers are taken into
|