Ejemplo n.º 1
0
void BPatch_basicBlock::getImmediatePostDominates(BPatch_Vector<BPatch_basicBlock*>& imds){
  flowGraph->fillPostDominatorInfo();

  if(!immediatePostDominates)
    return;

  imds.insert(imds.end(), immediatePostDominates->begin(), immediatePostDominates->end());

  return;
}
Ejemplo n.º 2
0
void 
DICFG::analyze_unresolved_control_transfers(std::vector<BPatch_function *> *funcs) 
{
	std::vector<BPatch_function *>::iterator funcs_iter; 

	/* Look at the unresolved control transfers */
	for(funcs_iter = funcs->begin(); funcs_iter != funcs->end(); funcs_iter++) {
		BPatch_function *bp_fun = *funcs_iter; 

		BPatch_Vector<BPatch_point *> unresolvedCFs;
		BPatch_Vector<BPatch_point *>::iterator unresolved_iter; 
		BPatch_point *unresolved_point;
		
		address_t unresolved_instr_addr;

		bp_fun->getUnresolvedControlTransfers(unresolvedCFs);
		for (unresolved_iter = unresolvedCFs.begin(); unresolved_iter != unresolvedCFs.end(); unresolved_iter++) {
			unresolved_point = *unresolved_iter;
			unresolved_instr_addr = (address_t) (unresolved_point->getAddress());

			debug_check_if_cs_remains_unresolved(unresolved_instr_addr); 
		}
	}
}