Sha256: ac282ede6b2d3b811a1ae68ddc37ef8ba69c33e38ff7800de043861965135c9d
Contents?: true
Size: 1.25 KB
Versions: 23
Compression:
Stored size: 1.25 KB
Contents
/* ** cmdrun.c - mruby debugger run command functions ** */ #include <mruby/opcode.h> #include "mrdb.h" dbgcmd_state dbgcmd_run(mrb_state *mrb, mrdb_state *mrdb) { mrb_debug_context *dbg = mrdb->dbg; if (dbg->xm == DBG_INIT){ dbg->xm = DBG_RUN; } else { dbg->xm = DBG_QUIT; 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."); } } return DBGST_RESTART; } dbgcmd_state dbgcmd_continue(mrb_state *mrb, mrdb_state *mrdb) { mrb_debug_context *dbg = mrdb->dbg; int ccnt = 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){ puts("The program is not running."); dbg->xm = DBG_QUIT; } else { dbg->xm = DBG_RUN; } return DBGST_CONTINUE; } dbgcmd_state 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; }
Version data entries
23 entries across 23 versions & 2 rubygems