Example #1
0
R_API int r_debug_step(RDebug *dbg, int steps) {
	int i, ret;

	if (!dbg || !dbg->h)
		return R_FALSE;
	dbg->reason.type = R_DEBUG_REASON_STEP;

	if (r_debug_is_dead (dbg)) {
		return R_FALSE;
	}

	if (steps < 1)
		steps = 1;

	for (i = 0; i < steps; i++) {
		ret = dbg->swstep?
			r_debug_step_soft (dbg):
			r_debug_step_hard (dbg);
		if (!ret) {
			eprintf ("Stepping failed!\n");
			return R_FALSE;
		} else {
			dbg->steps++;
			dbg->reason.type = R_DEBUG_REASON_STEP;
			//dbg->reason.addr = 
		}
	}

	return i;
}
Example #2
0
// TODO: count number of steps done to check if no error??
R_API int r_debug_step(RDebug *dbg, int steps) {
	int i, ret = R_FALSE;
	if (dbg && dbg->h && dbg->h->step) {
		for (i=0; i<steps; i++) {
			ret = (dbg->swstep)?
				r_debug_step_soft (dbg):
				r_debug_step_hard (dbg);
			// TODO: create wrapper for dbg_wait
			// TODO: check return value of wait and show error
			if (ret)
				dbg->steps++;
		}
	}
	return ret;
}
Example #3
0
R_API int r_debug_step(RDebug *dbg, int steps) {
	int i, ret;

	if (!dbg || !dbg->h)
		return R_FALSE;

	if (r_debug_is_dead (dbg))
		return R_FALSE;

	if (steps < 1)
		steps = 1;

	for (i = 0; i < steps; i++) {
		ret = dbg->swstep?
			r_debug_step_soft (dbg):
			r_debug_step_hard (dbg);
		if (!ret) {
			eprintf ("Stepping failed!\n");
			return R_FALSE;
		} else dbg->steps++;
	}

	return i;
}