Module Callgraph

module Callgraph: sig .. end
Compute a static call graph.
Consult the Plugin Development Guide for additional details.

type callnode = {
   cnid : int;
   cnInfo : nodeinfo;
   cnCallees : callnode Datatype.Int.Hashtbl.t;
   cnCallers : callnode Datatype.Int.Hashtbl.t;
}
a call node describes the local calling structure for a single function: which functions it calls, and which functions call it
type nodeinfo = 
| NIVar of Cil_types.varinfo * bool Pervasives.ref (*
Node corresponding to a function. If the boolean is true, then the function is defined, otherwise it is external
*)
| NIIndirect of string * Cil_types.varinfo list Pervasives.ref
val nodeName : nodeinfo -> string
type callgraph = (string, callnode) Hashtbl.t 
a call graph is a hashtable, mapping a function name to the node which describes that function's call structure
val computeGraph : Cil_types.file -> callgraph
given a CIL file, compute its static call graph
val printGraph : Pervasives.out_channel -> callgraph -> unit
print the callgraph in a human-readable format to a channel
val feature : Cil.featureDescr