(self, path)
return taken_successors
Callback routine that takes in a path, and returns all feasible successors to path group. This callback routine
        should be passed to the keyword argument "successor_func" of PathGroup.step().

        :param path: A Path instance.
        :return: A list of all feasible Path successors.
Callback routine that takes in a path, and returns all feasible successors to path group. This callback routine
        should be passed to the keyword argument "successor_func" of PathGroup.step().
Callback routine that takes in a path and returns all feasible successors to path group . This callback routine should be passed to the keyword argument successor_func of PathGroup . step () .
def successor_func(self, path):
        """
        Callback routine that takes in a path, and returns all feasible successors to path group. This callback routine
        should be passed to the keyword argument "successor_func" of PathGroup.step().

        :param path: A Path instance.
        :return: A list of all feasible Path successors.
        """

        whitelist = self.get_whitelisted_statements(path.addr)
        last_stmt = self.get_last_statement_index(path.addr)

        # pass in those arguments
        successors = path.step(
            stmt_whitelist=whitelist,
            last_stmt=None
        )

        # further filter successors based on the annotated CFG
        taken_successors = [ ]
        for suc in successors:
            try:
                taken = self.should_take_exit(path.addr, suc.addr)
            except AngrExitError:
                l.debug("Got an unknown exit that AnnotatedCFG does not know about: %#x -> %#x", path.addr, suc.addr)
                continue

            if taken:
                taken_successors.append(suc)

        return taken_successors
def successor_func ( self , path ) : whitelist = self . get_whitelisted_statements ( path . addr ) last_stmt = self . get_last_statement_index ( path . addr ) # pass in those arguments successors = path . step ( stmt_whitelist = whitelist , last_stmt = None ) # further filter successors based on the annotated CFG taken_successors = [ ] for suc in successors : try : taken = self . should_take_exit ( path . addr , suc . addr ) except AngrExitError : l . debug ( "Got an unknown exit that AnnotatedCFG does not know about: %#x -> %#x" , path . addr , suc . addr ) continue if taken : taken_successors . append ( suc ) return taken_successors