(self, cfgnode, depth_limit=None)
return list(predecessors)
Get all predecessors of a specific node on the control flow graph.

        :param CFGNode cfgnode: The CFGNode object
        :param int depth_limit: Optional depth limit for the depth-first search
        :return: A list of predecessors in the CFG
        :rtype: list
Get all predecessors of a specific node on the control flow graph.
Get all predecessors of a specific node on the control flow graph .
def get_all_predecessors(self, cfgnode, depth_limit=None):
        """
        Get all predecessors of a specific node on the control flow graph.

        :param CFGNode cfgnode: The CFGNode object
        :param int depth_limit: Optional depth limit for the depth-first search
        :return: A list of predecessors in the CFG
        :rtype: list
        """
        # use the reverse graph and query for successors (networkx.dfs_predecessors is misleading)
        # dfs_successors returns a dict of (node, [predecessors]). We ignore the keyset and use the values
        predecessors = set().union(*networkx.dfs_successors(self.graph.reverse(), cfgnode, depth_limit).values())
        return list(predecessors)
def get_all_predecessors ( self , cfgnode , depth_limit = None ) : # use the reverse graph and query for successors (networkx.dfs_predecessors is misleading) # dfs_successors returns a dict of (node, [predecessors]). We ignore the keyset and use the values predecessors = set ( ) . union ( * networkx . dfs_successors ( self . graph . reverse ( ) , cfgnode , depth_limit ) . values ( ) ) return list ( predecessors )