|
Static Value-Flow Analysis
|
#include <CHG.h>
Public Types | |
| enum | RELATIONTYPE { CONSTRUCTOR = 0x1 , DESTRUCTOR = 0x2 } |
| typedef Set< const CHNode * > | CHNodeSetTy |
| typedef FIFOWorkList< const CHNode * > | WorkList |
| typedef Map< std::string, CHNodeSetTy > | NameToCHNodesMap |
| typedef Map< const ICFGNode *, CHNodeSetTy > | CallNodeToCHNodesMap |
| typedef Map< const ICFGNode *, VTableSet > | CallNodeToVTableSetMap |
| typedef Map< const ICFGNode *, VFunSet > | CallNodeToVFunSetMap |
| Public Types inherited from SVF::CommonCHGraph | |
| enum | CHGKind { Standard , DI } |
| Public Types inherited from SVF::GenericGraph< CHNode, CHEdge > | |
| typedef CHNode | NodeType |
| typedef CHEdge | EdgeType |
| typedef OrderedMap< NodeID, NodeType * > | IDToNodeMapTy |
| NodeID to GenericNode map. | |
| typedef IDToNodeMapTy::iterator | iterator |
| Node Iterators. | |
| typedef IDToNodeMapTy::const_iterator | const_iterator |
Public Member Functions | |
| CHGraph () | |
| ~CHGraph () override=default | |
| void | addEdge (const std::string className, const std::string baseClassName, CHEdge::CHEDGETYPE edgeType) |
| CHNode * | getNode (const std::string name) const |
| void | getVFnsFromVtbls (const CallICFGNode *cs, const VTableSet &vtbls, VFunSet &virtualFunctions) override |
| void | dump (const std::string &filename) |
| void | view () |
| void | printCH () |
| u32_t | getVirtualFunctionID (const FunObjVar *vfn) const |
| const FunObjVar * | getVirtualFunctionBasedonID (u32_t id) const |
| void | addInstances (const std::string templateName, CHNode *node) |
| const CHNodeSetTy & | getDescendants (const std::string className) |
| const CHNodeSetTy & | getInstances (const std::string className) |
| bool | csHasVtblsBasedonCHA (const CallICFGNode *cs) override |
| bool | csHasVFnsBasedonCHA (const CallICFGNode *cs) override |
| const VTableSet & | getCSVtblsBasedonCHA (const CallICFGNode *cs) override |
| const VFunSet & | getCSVFsBasedonCHA (const CallICFGNode *cs) override |
| Public Member Functions inherited from SVF::CommonCHGraph | |
| virtual | ~CommonCHGraph () |
| CHGKind | getKind (void) const |
| Public Member Functions inherited from SVF::GenericGraph< CHNode, CHEdge > | |
| GenericGraph () | |
| Constructor. | |
| virtual | ~GenericGraph () |
| Destructor. | |
| void | destroy () |
| Release memory. | |
| iterator | begin () |
| Iterators. | |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| void | addGNode (NodeID id, NodeType *node) |
| Add a Node. | |
| NodeType * | getGNode (NodeID id) const |
| Get a node. | |
| bool | hasGNode (NodeID id) const |
| Has a node. | |
| void | removeGNode (NodeType *node) |
| Delete a node. | |
| u32_t | getTotalNodeNum () const |
| Get total number of node/edge. | |
| u32_t | getTotalEdgeNum () const |
| void | incNodeNum () |
| Increase number of node/edge. | |
| void | incEdgeNum () |
Static Public Member Functions | |
| static bool | classof (const CommonCHGraph *chg) |
Friends | |
| class | CHGBuilder |
| class | GraphDBClient |
Additional Inherited Members | |
| Public Attributes inherited from SVF::GenericGraph< CHNode, CHEdge > | |
| u32_t | edgeNum |
| total num of node | |
| u32_t | nodeNum |
| total num of edge | |
| Protected Attributes inherited from SVF::CommonCHGraph | |
| CHGKind | kind |
| Protected Attributes inherited from SVF::GenericGraph< CHNode, CHEdge > | |
| IDToNodeMapTy | IDToNodeMap |
| node map | |
| typedef Map<const ICFGNode*, CHNodeSetTy> SVF::CHGraph::CallNodeToCHNodesMap |
| typedef Map<const ICFGNode*, VFunSet> SVF::CHGraph::CallNodeToVFunSetMap |
| typedef Map<const ICFGNode*, VTableSet> SVF::CHGraph::CallNodeToVTableSetMap |
| typedef Set<const CHNode*> SVF::CHGraph::CHNodeSetTy |
| typedef Map<std::string, CHNodeSetTy> SVF::CHGraph::NameToCHNodesMap |
| typedef FIFOWorkList<const CHNode*> SVF::CHGraph::WorkList |
|
overridedefault |
| void CHGraph::addEdge | ( | const std::string | className, |
| const std::string | baseClassName, | ||
| CHEdge::CHEDGETYPE | edgeType ) |
Definition at line 98 of file CHG.cpp.
|
inline |
Definition at line 296 of file CHG.h.
|
inlinestatic |
|
overridevirtual |
Implements SVF::CommonCHGraph.
|
overridevirtual |
Implements SVF::CommonCHGraph.
| void CHGraph::dump | ( | const std::string & | filename | ) |
Dump call graph into dot file
Definition at line 243 of file CHG.cpp.
|
overridevirtual |
Implements SVF::CommonCHGraph.
Definition at line 91 of file CHG.cpp.
|
overridevirtual |
Implements SVF::CommonCHGraph.
Definition at line 85 of file CHG.cpp.
|
inline |
|
inline |
| CHNode * CHGraph::getNode | ( | const std::string | name | ) | const |
|
overridevirtual |
get target virtual functions
get the function name of the virtual callsite
Implements SVF::CommonCHGraph.
Definition at line 125 of file CHG.cpp.
Definition at line 284 of file CHG.h.
Definition at line 275 of file CHG.h.
| void CHGraph::printCH | ( | ) |
Definition at line 219 of file CHG.cpp.
| void CHGraph::view | ( | ) |
Definition at line 249 of file CHG.cpp.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |