(self, start_point=None)
return anno_cfg
Returns an AnnotatedCFG based on slicing result.
Returns an AnnotatedCFG based on slicing result.
Returns an AnnotatedCFG based on slicing result .
def annotated_cfg(self, start_point=None):
        """
        Returns an AnnotatedCFG based on slicing result.
        """

        # TODO: Support context-sensitivity

        targets = [ ]

        for simrun, stmt_idx in self._targets:
            targets.append((simrun.addr, stmt_idx))

        l.debug("Initializing AnnoCFG...")
        anno_cfg = AnnotatedCFG(self.project, self._cfg)

        for simrun, stmt_idx in self._targets:
            if stmt_idx != -1:
                anno_cfg.set_last_statement(simrun.addr, stmt_idx)

        for n in self._cfg.graph.nodes():
            run = n

            if run.addr in self.chosen_statements:
                if self.chosen_statements[run.addr] is True:
                    anno_cfg.add_block_to_whitelist(run.addr)
                else:
                    anno_cfg.add_statements_to_whitelist(run.addr, self.chosen_statements[run.addr])

        for src, dst in self._cfg.graph.edges():
            run = src

            if dst.addr in self.chosen_statements and src.addr in self.chosen_statements:
                anno_cfg.add_exit_to_whitelist(run.addr, dst.addr)

        return anno_cfg
def annotated_cfg ( self , start_point = None ) : # TODO: Support context-sensitivity targets = [ ] for simrun , stmt_idx in self . _targets : targets . append ( ( simrun . addr , stmt_idx ) ) l . debug ( "Initializing AnnoCFG..." ) anno_cfg = AnnotatedCFG ( self . project , self . _cfg ) for simrun , stmt_idx in self . _targets : if stmt_idx != - 1 : anno_cfg . set_last_statement ( simrun . addr , stmt_idx ) for n in self . _cfg . graph . nodes ( ) : run = n if run . addr in self . chosen_statements : if self . chosen_statements [ run . addr ] is True : anno_cfg . add_block_to_whitelist ( run . addr ) else : anno_cfg . add_statements_to_whitelist ( run . addr , self . chosen_statements [ run . addr ] ) for src , dst in self . _cfg . graph . edges ( ) : run = src if dst . addr in self . chosen_statements and src . addr in self . chosen_statements : anno_cfg . add_exit_to_whitelist ( run . addr , dst . addr ) return anno_cfg