Static Value-Flow Analysis
Loading...
Searching...
No Matches
SVF::DOTGraphTraits< TCT * > Struct Reference
Inheritance diagram for SVF::DOTGraphTraits< TCT * >:
SVF::DefaultDOTGraphTraits SVF::DefaultDOTGraphTraits

Public Types

typedef TCTNode NodeType
typedef NodeType::iterator ChildIteratorType

Public Member Functions

 DOTGraphTraits (bool isSimple=false)
Public Member Functions inherited from SVF::DefaultDOTGraphTraits
 DefaultDOTGraphTraits (bool simple=false)
template<typename NodeT, typename GraphType>
std::string getNodeLabel (NodeT, const GraphType &)

Static Public Member Functions

static std::string getGraphName (TCT *graph)
 Return name of the graph.
static std::string getNodeLabel (TCTNode *node, TCT *graph)
 Return function name;.
static std::string getNodeAttributes (TCTNode *node, TCT *tct)
template<class EdgeIter>
static std::string getEdgeAttributes (TCTNode *node, EdgeIter EI, TCT *csThreadTree)
Static Public Member Functions inherited from SVF::DefaultDOTGraphTraits
template<typename GraphType>
static std::string getGraphName (const GraphType &)
template<typename GraphType>
static std::string getGraphProperties (const GraphType &)
static bool renderGraphFromBottomUp ()
template<typename NodeT>
static const void * getNodeIdentifier (NodeT N)
template<typename NodeT, typename GraphType>
static bool isNodeHidden (NodeT, const GraphType &)
template<typename NodeT, typename GraphType>
static std::string getNodeIdentifierLabel (NodeT, const GraphType &)
template<typename NodeT, typename GraphType>
static std::string getNodeDescription (NodeT, const GraphType &)
template<typename NodeT, typename GraphType>
static std::string getNodeAttributes (NodeT, const GraphType &)
template<typename NodeT, typename EdgeIter, typename GraphType>
static std::string getEdgeAttributes (NodeT, EdgeIter, const GraphType &)
template<typename NodeT, typename EdgeIter>
static std::string getEdgeSourceLabel (NodeT, EdgeIter)
template<typename NodeT, typename EdgeIter>
static bool edgeTargetsEdgeSource (NodeT, EdgeIter)
template<typename NodeT, typename EdgeIter>
static EdgeIter getEdgeTarget (NodeT, EdgeIter I)
static bool hasEdgeDestLabels ()
template<typename NodeT>
static unsigned numEdgeDestLabels (NodeT)
template<typename NodeT>
static std::string getEdgeDestLabel (NodeT, unsigned)
template<typename GraphType, typename GraphWriter>
static void addCustomGraphFeatures (const GraphType &, GraphWriter &)

Additional Inherited Members

Protected Member Functions inherited from SVF::DefaultDOTGraphTraits
bool isSimple ()

Detailed Description

Write value flow graph into dot file for debugging

Definition at line 623 of file TCT.cpp.

Member Typedef Documentation

◆ ChildIteratorType

typedef NodeType::iterator SVF::DOTGraphTraits< TCT * >::ChildIteratorType

Definition at line 627 of file TCT.cpp.

◆ NodeType

typedef TCTNode SVF::DOTGraphTraits< TCT * >::NodeType

Definition at line 626 of file TCT.cpp.

Constructor & Destructor Documentation

◆ DOTGraphTraits()

SVF::DOTGraphTraits< TCT * >::DOTGraphTraits ( bool isSimple = false)
inline

Definition at line 628 of file TCT.cpp.

628 :
630 {
631 }
DefaultDOTGraphTraits(bool simple=false)

Member Function Documentation

◆ getEdgeAttributes()

template<class EdgeIter>
std::string SVF::DOTGraphTraits< TCT * >::getEdgeAttributes ( TCTNode * node,
EdgeIter EI,
TCT * csThreadTree )
inlinestatic

black edge for direct call while two functions contain indirect calls will be label with red color

Definition at line 659 of file TCT.cpp.

660 {
661
663 (void)edge; // Suppress warning of unused variable under release build
664 assert(edge && "No edge found!!");
666 return "color=black";
667 }

◆ getGraphName()

std::string SVF::DOTGraphTraits< TCT * >::getGraphName ( TCT * graph)
inlinestatic

Return name of the graph.

Definition at line 634 of file TCT.cpp.

635 {
636 return "Thread Create Tree";
637 }

◆ getNodeAttributes()

std::string SVF::DOTGraphTraits< TCT * >::getNodeAttributes ( TCTNode * node,
TCT * tct )
inlinestatic

Definition at line 644 of file TCT.cpp.

645 {
647 if (node->isInloop())
648 {
649 attr.append("shape=record,style=filled,fillcolor=red");
650 }
651 else if (node->isIncycle())
652 {
653 attr.append("shape=record,style=filled,fillcolor=yellow");
654 }
655 return attr;
656 }

◆ getNodeLabel()

std::string SVF::DOTGraphTraits< TCT * >::getNodeLabel ( TCTNode * node,
TCT * graph )
inlinestatic

Return function name;.

Definition at line 639 of file TCT.cpp.

640 {
641 return std::to_string(node->getId());
642 }

The documentation for this struct was generated from the following file: