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; }
// 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; }
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; }