Changeset 439 for EcnlProtoTool/trunk/prototool/src/cmdrun.c
- Timestamp:
- Jul 9, 2020, 8:51:43 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/prototool/src/cmdrun.c
r321 r439 4 4 */ 5 5 6 #include <stdlib.h> 7 8 #include "mruby/opcode.h" 6 #include <mruby/opcode.h> 9 7 #include "mrdb.h" 10 8 … … 12 10 dbgcmd_run(mrb_state *mrb, mrdb_state *mrdb) 13 11 { 14 12 mrb_debug_context *dbg = mrdb->dbg; 15 13 16 if (dbg->xm == DBG_INIT){17 InterlockedExchange(&dbg->xm, DBG_RUN);18 19 20 InterlockedExchange(&dbg->xm, DBG_QUIT);21 if (dbg->xphase == DBG_PHASE_RUNNING){22 23 24 exc = mrb_define_class(mrb, "DebuggerRestart", mrb_class_get(mrb, "Exception"));25 26 27 14 if (dbg->xm == DBG_INIT){ 15 dbg->xm = DBG_RUN; 16 } 17 else { 18 dbg->xm = DBG_QUIT; 19 if (dbg->xphase == DBG_PHASE_RUNNING){ 20 struct RClass *exc; 21 puts("Start it from the beginning."); 22 exc = mrb_define_class(mrb, "DebuggerRestart", mrb->eException_class); 23 mrb_raise(mrb, exc, "Restart mrdb."); 24 } 25 } 28 26 29 27 return DBGST_RESTART; 30 28 } 31 29 … … 33 31 dbgcmd_continue(mrb_state *mrb, mrdb_state *mrdb) 34 32 { 35 36 33 mrb_debug_context *dbg = mrdb->dbg; 34 int ccnt = 1; 37 35 38 if (mrdb->wcnt > 1){39 40 41 36 if (mrdb->wcnt > 1){ 37 sscanf(mrdb->words[1], "%d", &ccnt); 38 } 39 dbg->ccnt = (uint16_t)(ccnt > 0 ? ccnt : 1); /* count of continue */ 42 40 43 if (dbg->xphase == DBG_PHASE_AFTER_RUN){44 45 InterlockedExchange(&dbg->xm, DBG_QUIT);46 47 48 InterlockedExchange(&dbg->xm, DBG_RUN);49 50 41 if (dbg->xphase == DBG_PHASE_AFTER_RUN){ 42 puts("The program is not running."); 43 dbg->xm = DBG_QUIT; 44 } 45 else { 46 dbg->xm = DBG_RUN; 47 } 48 return DBGST_CONTINUE; 51 49 } 52 50 … … 54 52 dbgcmd_step(mrb_state *mrb, mrdb_state *mrdb) 55 53 { 56 InterlockedExchange(&mrdb->dbg->xm, DBG_STEP);57 54 mrdb->dbg->xm = DBG_STEP; 55 return DBGST_CONTINUE; 58 56 } 59 57 … … 61 59 dbgcmd_next(mrb_state *mrb, mrdb_state *mrdb) 62 60 { 63 InterlockedExchange(&mrdb->dbg->xm, DBG_NEXT);64 65 61 mrdb->dbg->xm = DBG_NEXT; 62 mrdb->dbg->prvci = mrb->c->ci; 63 return DBGST_CONTINUE; 66 64 }
Note:
See TracChangeset
for help on using the changeset viewer.