diff options
Diffstat (limited to 'mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c')
| -rw-r--r--[-rwxr-xr-x] | mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c index 8d8340560..fe8cf0aa7 100755..100644 --- a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +++ b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c @@ -3,7 +3,7 @@ ** */ -#include "mruby/opcode.h" +#include <mruby/opcode.h> #include "mrdb.h" dbgcmd_state @@ -11,18 +11,19 @@ dbgcmd_run(mrb_state *mrb, mrdb_state *mrdb) { mrb_debug_context *dbg = mrdb->dbg; - if( dbg->xm == DBG_INIT ){ + if (dbg->xm == DBG_INIT){ dbg->xm = DBG_RUN; - } else { + } + else { dbg->xm = DBG_QUIT; - if( dbg->xphase == DBG_PHASE_RUNNING ){ + if (dbg->xphase == DBG_PHASE_RUNNING){ struct RClass *exc; - puts("Start it from the beginning."); - exc = mrb_define_class(mrb, "DebuggerRestart", mrb_class_get(mrb, "Exception")); - mrb_raise(mrb, exc, "Restart mrdb."); + puts("Start it from the beginning"); + exc = mrb_define_class(mrb, "DebuggerRestart", mrb->eException_class); + mrb_raise(mrb, exc, "Restart mrdb"); } } - + return DBGST_RESTART; } @@ -32,15 +33,16 @@ dbgcmd_continue(mrb_state *mrb, mrdb_state *mrdb) mrb_debug_context *dbg = mrdb->dbg; int ccnt = 1; - if( mrdb->wcnt > 1 ){ + if (mrdb->wcnt > 1){ sscanf(mrdb->words[1], "%d", &ccnt); } dbg->ccnt = (uint16_t)(ccnt > 0 ? ccnt : 1); /* count of continue */ - if( dbg->xphase == DBG_PHASE_AFTER_RUN ){ + if (dbg->xphase == DBG_PHASE_AFTER_RUN){ puts("The program is not running."); dbg->xm = DBG_QUIT; - } else { + } + else { dbg->xm = DBG_RUN; } return DBGST_CONTINUE; @@ -52,3 +54,11 @@ dbgcmd_step(mrb_state *mrb, mrdb_state *mrdb) mrdb->dbg->xm = DBG_STEP; return DBGST_CONTINUE; } + +dbgcmd_state +dbgcmd_next(mrb_state *mrb, mrdb_state *mrdb) +{ + mrdb->dbg->xm = DBG_NEXT; + mrdb->dbg->prvci = mrb->c->ci; + return DBGST_CONTINUE; +} |
