Ignore:
Timestamp:
Jul 9, 2020, 8:51:43 AM (4 years ago)
Author:
coas-nagasima
Message:

mrubyを2.1.1に更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/prototool/src/cmdrun.c

    r321 r439  
    44*/
    55
    6 #include <stdlib.h>
    7 
    8 #include "mruby/opcode.h"
     6#include <mruby/opcode.h>
    97#include "mrdb.h"
    108
     
    1210dbgcmd_run(mrb_state *mrb, mrdb_state *mrdb)
    1311{
    14         mrb_debug_context *dbg = mrdb->dbg;
     12  mrb_debug_context *dbg = mrdb->dbg;
    1513
    16         if (dbg->xm == DBG_INIT) {
    17                 InterlockedExchange(&dbg->xm, DBG_RUN);
    18         }
    19         else {
    20                 InterlockedExchange(&dbg->xm, DBG_QUIT);
    21                 if (dbg->xphase == DBG_PHASE_RUNNING) {
    22                         struct RClass *exc;
    23                         puts("Start it from the beginning.");
    24                         exc = mrb_define_class(mrb, "DebuggerRestart", mrb_class_get(mrb, "Exception"));
    25                         mrb_raise(mrb, exc, "Restart mrdb.");
    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  }
    2826
    29         return DBGST_RESTART;
     27  return DBGST_RESTART;
    3028}
    3129
     
    3331dbgcmd_continue(mrb_state *mrb, mrdb_state *mrdb)
    3432{
    35         mrb_debug_context *dbg = mrdb->dbg;
    36         int ccnt = 1;
     33  mrb_debug_context *dbg = mrdb->dbg;
     34  int ccnt = 1;
    3735
    38         if (mrdb->wcnt > 1) {
    39                 sscanf(mrdb->words[1], "%d", &ccnt);
    40         }
    41         dbg->ccnt = (uint16_t)(ccnt > 0 ? ccnt : 1);  /* count of continue */
     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 */
    4240
    43         if (dbg->xphase == DBG_PHASE_AFTER_RUN) {
    44                 puts("The program is not running.");
    45                 InterlockedExchange(&dbg->xm, DBG_QUIT);
    46         }
    47         else {
    48                 InterlockedExchange(&dbg->xm, DBG_RUN);
    49         }
    50         return DBGST_CONTINUE;
     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;
    5149}
    5250
     
    5452dbgcmd_step(mrb_state *mrb, mrdb_state *mrdb)
    5553{
    56         InterlockedExchange(&mrdb->dbg->xm, DBG_STEP);
    57         return DBGST_CONTINUE;
     54  mrdb->dbg->xm = DBG_STEP;
     55  return DBGST_CONTINUE;
    5856}
    5957
     
    6159dbgcmd_next(mrb_state *mrb, mrdb_state *mrdb)
    6260{
    63         InterlockedExchange(&mrdb->dbg->xm, DBG_NEXT);
    64         mrdb->dbg->prvci = mrb->c->ci;
    65         return DBGST_CONTINUE;
     61  mrdb->dbg->xm = DBG_NEXT;
     62  mrdb->dbg->prvci = mrb->c->ci;
     63  return DBGST_CONTINUE;
    6664}
Note: See TracChangeset for help on using the changeset viewer.