SVF
|
#include <Graph2Json.h>
Public Member Functions | |
ICFGPrinter () | |
void | printICFGToJson (const std::string &filename) |
std::string | getPAGNodeKindValue (int kind) |
std::string | getPAGEdgeKindValue (int kind) |
std::string | getICFGKind (const int kind) |
![]() | |
ICFG () | |
Constructor. More... | |
virtual | ~ICFG () |
Destructor. More... | |
ICFGNode * | getICFGNode (NodeID id) const |
Get a ICFG node. More... | |
bool | hasICFGNode (NodeID id) const |
Whether has the ICFGNode. More... | |
ICFGEdge * | getICFGEdge (const ICFGNode *src, const ICFGNode *dst, ICFGEdge::ICFGEdgeK kind) |
Get a SVFG edge according to src and dst. More... | |
void | dump (const std::string &file, bool simple=false) |
Dump graph into dot file. More... | |
void | view () |
View graph from the debugger. More... | |
void | updateCallGraph (PTACallGraph *callgraph) |
update ICFG for indirect calls More... | |
void | removeICFGEdge (ICFGEdge *edge) |
Remove a SVFG edge. More... | |
void | removeICFGNode (ICFGNode *node) |
Remove a ICFGNode. More... | |
void | checkIntraEdgeParents (const ICFGNode *srcNode, const ICFGNode *dstNode) |
sanitize Intra edges, verify that both nodes belong to the same function. More... | |
bool | addICFGEdge (ICFGEdge *edge) |
Add ICFG edge. More... | |
virtual void | addICFGNode (ICFGNode *node) |
Add a ICFG node. More... | |
ICFGEdge * | hasIntraICFGEdge (ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind) |
Whether we has a SVFG edge. More... | |
ICFGEdge * | hasInterICFGEdge (ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind) |
ICFGEdge * | hasThreadICFGEdge (ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind) |
ICFGEdge * | addIntraEdge (ICFGNode *srcNode, ICFGNode *dstNode) |
Add control-flow edges for top level pointers. More... | |
ICFGEdge * | addConditionalIntraEdge (ICFGNode *srcNode, ICFGNode *dstNode, const Value *condition, NodeID branchID) |
ICFGEdge * | addCallEdge (ICFGNode *srcNode, ICFGNode *dstNode, const Instruction *cs) |
ICFGEdge * | addRetEdge (ICFGNode *srcNode, ICFGNode *dstNode, const Instruction *cs) |
ICFGNode * | getBlockICFGNode (const Instruction *inst) |
Get a basic block ICFGNode. More... | |
CallBlockNode * | getCallBlockNode (const Instruction *inst) |
RetBlockNode * | getRetBlockNode (const Instruction *inst) |
IntraBlockNode * | getIntraBlockNode (const Instruction *inst) |
FunEntryBlockNode * | getFunEntryBlockNode (const SVFFunction *fun) |
Add a function entry node. More... | |
FunExitBlockNode * | getFunExitBlockNode (const SVFFunction *fun) |
Add a function exit node. More... | |
GlobalBlockNode * | getGlobalBlockNode () const |
![]() | |
GenericGraph () | |
Constructor. More... | |
virtual | ~GenericGraph () |
Destructor. More... | |
void | destroy () |
Release memory. More... | |
iterator | begin () |
Iterators. More... | |
iterator | end () |
const_iterator | begin () const |
const_iterator | end () const |
void | addGNode (NodeID id, NodeType *node) |
Add a Node. More... | |
NodeType * | getGNode (NodeID id) const |
Get a node. More... | |
bool | hasGNode (NodeID id) const |
Has a node. More... | |
void | removeGNode (NodeType *node) |
Delete a node. More... | |
u32_t | getTotalNodeNum () const |
Get total number of node/edge. More... | |
u32_t | getTotalEdgeNum () const |
void | incNodeNum () |
Increase number of node/edge. More... | |
void | incEdgeNum () |
Additional Inherited Members | |
![]() | |
typedef Map< NodeID, ICFGNode * > | ICFGNodeIDToNodeMapTy |
typedef ICFGEdge::ICFGEdgeSetTy | ICFGEdgeSetTy |
typedef ICFGNodeIDToNodeMapTy::iterator | iterator |
typedef ICFGNodeIDToNodeMapTy::const_iterator | const_iterator |
typedef Map< const SVFFunction *, FunEntryBlockNode * > | FunToFunEntryNodeMapTy |
typedef Map< const SVFFunction *, FunExitBlockNode * > | FunToFunExitNodeMapTy |
typedef Map< const Instruction *, CallBlockNode * > | CSToCallNodeMapTy |
typedef Map< const Instruction *, RetBlockNode * > | CSToRetNodeMapTy |
typedef Map< const Instruction *, IntraBlockNode * > | InstToBlockNodeMapTy |
![]() | |
typedef NodeTy | NodeType |
typedef EdgeTy | EdgeType |
typedef Map< NodeID, NodeType * > | IDToNodeMapTy |
NodeID to GenericNode map. More... | |
typedef IDToNodeMapTy::iterator | iterator |
Node Iterators. More... | |
typedef IDToNodeMapTy::const_iterator | const_iterator |
![]() | |
NodeID | totalICFGNode |
![]() | |
u32_t | edgeNum |
total num of node More... | |
u32_t | nodeNum |
total num of edge More... | |
![]() | |
IDToNodeMapTy | IDToNodeMap |
node map More... | |
Definition at line 16 of file Graph2Json.h.
ICFGPrinter::ICFGPrinter | ( | ) |
Definition at line 10 of file Graph2Json.cpp.
std::string ICFGPrinter::getICFGKind | ( | const int | kind | ) |
Definition at line 140 of file Graph2Json.cpp.
std::string ICFGPrinter::getPAGEdgeKindValue | ( | int | kind | ) |
Definition at line 200 of file Graph2Json.cpp.
std::string ICFGPrinter::getPAGNodeKindValue | ( | int | kind | ) |
Definition at line 165 of file Graph2Json.cpp.
void ICFGPrinter::printICFGToJson | ( | const std::string & | filename | ) |
Definition at line 11 of file Graph2Json.cpp.