45 #ifndef CALL_GRAPH_HPP 46 #define CALL_GRAPH_HPP 60 #define STD_SELECTOR (1 << 0) 61 #define FEEDBACK_SELECTOR (1 << 1) 143 if(ExistsEdge(source, target))
145 return AddSelector(source, target, selector);
215 void WriteDot(
const std::string& file_name)
const;
228 const std::map<unsigned int, FunctionBehaviorRef>&
behaviors;
242 void operator()(std::ostream& out,
const vertex& v)
const override;
252 const std::map<unsigned int, FunctionBehaviorRef>&
behaviors;
271 void operator()(std::ostream& out,
const EdgeDescriptor& e)
const override;
Information associated with a call_graph edge.
Base class storing user data information to the whole graph.
CustomOrderedSet< unsigned int > function_addresses
const std::map< unsigned int, FunctionBehaviorRef > & behaviors
reference to the behaviors
Class specification of the graph structures.
Functor used by write_graphviz to write the label of the vertices of a function graph.
const EdgeInfoConstRef CGetEdgeInfo(typename boost::graph_traits< graphs_collection >::vertex_descriptor source, typename boost::graph_traits< graphs_collection >::vertex_descriptor target) const
Get the edge property.
Information associated with a call_graph node.
redefinition of map to manage ordered/unordered structures
Functor used by write_graphviz to write the edges of a function graph.
std::map< unsigned int, FunctionBehaviorRef > behaviors
reference to the behaviors
The info associated with the call graph.
This class is the view of a call graph.
EdgeDescriptor AddEdge(const vertex source, const vertex target, const int selector)
Add an edge with empty information associated.
FunctionInfo()
Constructor.
Functor used to write the content of a vertex to dotty file.
CallGraphInfoRef GetCallGraphInfo()
Return the info associated with the call graph.
unsigned int nodeID
this is the nodeID of the function associated with the vertex
Base class description of data information associated with each node of a graph.
refcount< EdgeInfo > EdgeInfoRef
RefCount type definition of the edge_info class structure.
redefinition of set to manage ordered/unordered structures
This class collects information concerning the set of functions that will be analyzed by the PandA fr...
boost::graph_traits< graph >::vertex_descriptor vertex
vertex definition.
General class used to describe a graph in PandA.
Base class storing user data information.
Base class for graph property.
GraphInfoRef GetGraphInfo()
FIXME: this method should become protected and called by equivalent method in subclasses Get the grap...
Template definition of refcount.
Base class description of data information associated with each edge of a graph.
Functor used to write the content of the edges to a dotty file.
const GraphInfoConstRef CGetGraphInfo() const
FIXME: this method should become protected and called by equivalent method in subclasses Get the grap...
REF_FORWARD_DECL(FunctionBehavior)
const std::map< unsigned int, FunctionBehaviorRef > & behaviors
reference to the behaviors
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
CustomOrderedSet< unsigned int > indirect_call_points
CustomOrderedSet< unsigned int > direct_call_points
the index of the statements of the caller function where the target is called;
const FunctionEdgeInfoConstRef CGetFunctionEdgeInfo(const EdgeDescriptor edge) const
Return the info associated with an edge.
const CallGraphInfoConstRef CGetCallGraphInfo() const
Return the info associated with the call graph.
boost::graph_traits< graph >::edge_descriptor EdgeDescriptor
edge definition.