Call graph

From Wikipedia, the free encyclopedia

A call graph is a directed graph that represents calling relationship among subroutines in a computer program. It shows the control flow of a program and it can be determined partially using a static analysis. However, usually it is regarded as a nondeterministic structure since many branches are decided at run time. The call graph of a program that does not use recursion is a directed acyclic graph.

This term is frequently used in the compiler and binary translation community. By tracking a call graph, it may be possible to detect anomalies of program execution or code injection attacks.