#include <Graph.h>
Data Structures | |
| class | NodePredicate |
Public Types | |
| typedef boost::shared_ptr< Graph > | Ptr |
| typedef bool(* | NodePredicateFunc )(const NodePtr &node, void *user_arg) |
| typedef dyn_hash_map< void *, void *, void_ptr_hasher > | annos_by_type_t |
| typedef std::vector < annos_by_type_t * > | annos_t |
Public Member Functions | |
| virtual void | entryNodes (NodeIterator &begin, NodeIterator &end) |
| virtual void | exitNodes (NodeIterator &begin, NodeIterator &end) |
| virtual void | allNodes (NodeIterator &begin, NodeIterator &end) |
| virtual bool | find (Address addr, NodeIterator &begin, NodeIterator &end) |
| virtual bool | find (NodePredicate::Ptr, NodeIterator &begin, NodeIterator &end) |
| virtual bool | find (NodePredicateFunc, void *user_arg, NodeIterator &begin, NodeIterator &end) |
| bool | printDOT (const std::string &fileName) |
| virtual | ~Graph () |
| void | insertPair (NodePtr source, NodePtr target, EdgePtr edge=EdgePtr()) |
| virtual void | insertEntryNode (NodePtr entry) |
| virtual void | insertExitNode (NodePtr exit) |
| virtual void | markAsEntryNode (NodePtr entry) |
| virtual void | markAsExitNode (NodePtr exit) |
| void | deleteNode (NodePtr node) |
| void | addNode (NodePtr node) |
| virtual void | removeAnnotation () |
| bool | isEntryNode (NodePtr node) |
| bool | isExitNode (NodePtr node) |
| unsigned | size () const |
| template<class T > | |
| AN_INLINE bool | addAnnotation (const T *a, AnnotationClass< T > &a_id) |
| bool | operator== (AnnotatableSparse &cmp) |
| template<class T > | |
| AN_INLINE bool | getAnnotation (T *&a, AnnotationClass< T > &a_id) const |
| template<class T > | |
| bool | removeAnnotation (AnnotationClass< T > &a_id) |
| void | serializeAnnotations (SerializerBase *sb, const char *) |
| void | annotationsReport () |
Static Public Member Functions | |
| static Ptr | createGraph () |
Protected Types | |
| typedef boost::shared_ptr< Node > | NodePtr |
| typedef boost::shared_ptr< Edge > | EdgePtr |
| typedef std::set< NodePtr > | NodeSet |
| typedef std::map< Address, NodeSet > | NodeMap |
Protected Member Functions | |
| Graph () | |
Protected Attributes | |
| NodeSet | nodes_ |
| NodeMap | nodesByAddr_ |
| NodeSet | entryNodes_ |
| NodeSet | exitNodes_ |
Static Protected Attributes | |
| static const Address | INITIAL_ADDR = (Address) -1 |
Friends | |
| class | Edge |
| class | Node |
| class | Creator |
| class | Iterator |
Definition at line 58 of file Graph.h.
typedef dyn_hash_map<void *, void *, void_ptr_hasher> Dyninst::AnnotatableSparse::annos_by_type_t [inherited] |
Definition at line 505 of file Annotatable.h.
typedef std::vector<annos_by_type_t *> Dyninst::AnnotatableSparse::annos_t [inherited] |
Definition at line 508 of file Annotatable.h.
typedef boost::shared_ptr<Edge> Dyninst::Graph::EdgePtr [protected] |
typedef std::map<Address, NodeSet> Dyninst::Graph::NodeMap [protected] |
| typedef bool(* Dyninst::Graph::NodePredicateFunc)(const NodePtr &node, void *user_arg) |
typedef boost::shared_ptr<Node> Dyninst::Graph::NodePtr [protected] |
typedef std::set<NodePtr> Dyninst::Graph::NodeSet [protected] |
| typedef boost::shared_ptr<Graph> Dyninst::Graph::Ptr |
| Graph::Graph | ( | ) | [protected] |
Definition at line 74 of file Graph.C.
Referenced by createGraph().
| AN_INLINE bool Dyninst::AnnotatableSparse::addAnnotation | ( | const T * | a, | |
| AnnotationClass< T > & | a_id | |||
| ) | [inline, inherited] |
Definition at line 754 of file Annotatable.h.
References Dyninst::annotatable_printf(), FILE__, fprintf, Dyninst::getExistingOutputSB(), Dyninst::AnnotationClassBase::getID(), Dyninst::AnnotationClassBase::getName(), Dyninst::AnnotationClassBase::getSerializeFunc(), Dyninst::ser_operation(), Dyninst::serialize_post_annotation(), Dyninst::sp_add_anno, and Dyninst::sparse.
Referenced by Dyninst::SymtabAPI::parseStabString().
| void Graph::addNode | ( | NodePtr | node | ) |
Definition at line 115 of file Graph.C.
References nodes_, and nodesByAddr_.
Referenced by insertEntryNode(), insertExitNode(), and insertPair().
| void Graph::allNodes | ( | NodeIterator & | begin, | |
| NodeIterator & | end | |||
| ) | [virtual] |
| void Dyninst::AnnotatableSparse::annotationsReport | ( | ) | [inline, inherited] |
Definition at line 932 of file Annotatable.h.
References FILE__, Dyninst::AnnotationClassBase::findAnnotationClass(), fprintf, and getTypeName().
| Graph::Ptr Graph::createGraph | ( | ) | [static] |
Definition at line 76 of file Graph.C.
References Graph().
Referenced by Dyninst::Node::backwardSubgraph(), and Dyninst::Node::forwardSubgraph().
| void Graph::deleteNode | ( | NodePtr | node | ) |
Definition at line 150 of file Graph.C.
References entryNodes_, exitNodes_, nodes_, and nodesByAddr_.
| void Graph::entryNodes | ( | NodeIterator & | begin, | |
| NodeIterator & | end | |||
| ) | [virtual] |
| void Graph::exitNodes | ( | NodeIterator & | begin, | |
| NodeIterator & | end | |||
| ) | [virtual] |
| bool Graph::find | ( | NodePredicateFunc | pred, | |
| void * | user_arg, | |||
| NodeIterator & | begin, | |||
| NodeIterator & | end | |||
| ) | [virtual] |
Definition at line 139 of file Graph.C.
References allNodes().
| bool Graph::find | ( | NodePredicate::Ptr | pred, | |
| NodeIterator & | begin, | |||
| NodeIterator & | end | |||
| ) | [virtual] |
Definition at line 128 of file Graph.C.
References allNodes().
| bool Graph::find | ( | Address | addr, | |
| NodeIterator & | begin, | |||
| NodeIterator & | end | |||
| ) | [virtual] |
Definition at line 65 of file Graph.C.
References nodesByAddr_.
| AN_INLINE bool Dyninst::AnnotatableSparse::getAnnotation | ( | T *& | a, | |
| AnnotationClass< T > & | a_id | |||
| ) | const [inline, inherited] |
Definition at line 818 of file Annotatable.h.
Referenced by Dyninst::SymtabAPI::Function::addLocalVar(), Dyninst::SymtabAPI::Function::addParam(), Dyninst::SymtabAPI::Symtab::addUserRegion(), Dyninst::SymtabAPI::Symtab::addUserType(), Dyninst::SymtabAPI::Function::findLocalVariable(), Dyninst::SymtabAPI::Symtab::getAllNewRegions(), Dyninst::SymtabAPI::Function::getLocalVariables(), Dyninst::SymtabAPI::Function::getParams(), Dyninst::SymtabAPI::Symbol::getVersionFileName(), Dyninst::SymtabAPI::Symbol::getVersions(), Dyninst::SymtabAPI::parseStabString(), Dyninst::SymtabAPI::Function::setupParams(), Dyninst::SymtabAPI::Symbol::setVersionFileName(), Dyninst::SymtabAPI::Symbol::setVersions(), Dyninst::SymtabAPI::Function::~Function(), Dyninst::SymtabAPI::Symbol::~Symbol(), and Dyninst::SymtabAPI::Symtab::~Symtab().
| void Graph::insertEntryNode | ( | NodePtr | entry | ) | [virtual] |
Definition at line 97 of file Graph.C.
References addNode(), and entryNodes_.
| void Graph::insertExitNode | ( | NodePtr | exit | ) | [virtual] |
Definition at line 102 of file Graph.C.
References addNode(), and exitNodes_.
Definition at line 80 of file Graph.C.
References addNode(), and Dyninst::Edge::createEdge().
| bool Graph::isEntryNode | ( | NodePtr | node | ) |
Definition at line 177 of file Graph.C.
References entryNodes_.
| bool Graph::isExitNode | ( | NodePtr | node | ) |
Definition at line 182 of file Graph.C.
References exitNodes_.
| void Graph::markAsEntryNode | ( | NodePtr | entry | ) | [virtual] |
Definition at line 107 of file Graph.C.
References entryNodes_.
| void Graph::markAsExitNode | ( | NodePtr | exit | ) | [virtual] |
Definition at line 111 of file Graph.C.
References exitNodes_.
| bool Dyninst::AnnotatableSparse::operator== | ( | AnnotatableSparse & | cmp | ) | [inline, inherited] |
Definition at line 668 of file Annotatable.h.
References FILE__, Dyninst::AnnotationClassBase::findAnnotationClass(), fprintf, Dyninst::AnnotatableSparse::getAnnos(), and Dyninst::AnnotationClassBase::getCmpFunc().
| bool Graph::printDOT | ( | const std::string & | fileName | ) |
Definition at line 40 of file DOT.C.
References entryNodes(), exitNodes(), and fprintf.
| bool Dyninst::AnnotatableSparse::removeAnnotation | ( | AnnotationClass< T > & | a_id | ) | [inline, inherited] |
Definition at line 843 of file Annotatable.h.
References Dyninst::annotation_debug_flag(), FILE__, fprintf, Dyninst::AnnotationClassBase::getID(), and Dyninst::AnnotationClassBase::getName().
Referenced by Dyninst::SymtabAPI::Function::~Function(), and Dyninst::SymtabAPI::Symbol::~Symbol().
| virtual void Dyninst::Graph::removeAnnotation | ( | ) | [inline, virtual] |
| void Dyninst::AnnotatableSparse::serializeAnnotations | ( | SerializerBase * | sb, | |
| const char * | ||||
| ) | [inline, inherited] |
Definition at line 869 of file Annotatable.h.
References Dyninst::ser_rec_t::acb, Dyninst::add_annotations(), Dyninst::ser_rec_t::data, FILE__, Dyninst::AnnotationClassBase::findAnnotationClass(), fprintf, Dyninst::get_serializer_index(), Dyninst::AnnotationClassBase::getSerializeFunc(), Dyninst::is_input(), Dyninst::is_output(), Dyninst::ser_rec_t::parent_id, Dyninst::serialize_annotation_list(), Dyninst::ser_rec_t::sod, and Dyninst::sparse.
NodeSet Dyninst::Graph::entryNodes_ [protected] |
Definition at line 149 of file Graph.h.
Referenced by deleteNode(), entryNodes(), insertEntryNode(), isEntryNode(), and markAsEntryNode().
NodeSet Dyninst::Graph::exitNodes_ [protected] |
Definition at line 152 of file Graph.h.
Referenced by deleteNode(), exitNodes(), insertExitNode(), isExitNode(), and markAsExitNode().
const Dyninst::Address Graph::INITIAL_ADDR = (Address) -1 [static, protected] |
NodeSet Dyninst::Graph::nodes_ [protected] |
Definition at line 143 of file Graph.h.
Referenced by addNode(), allNodes(), deleteNode(), and size().
NodeMap Dyninst::Graph::nodesByAddr_ [protected] |
Definition at line 145 of file Graph.h.
Referenced by addNode(), deleteNode(), and find().
1.6.1