X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fexec.c;h=ca1dfe0864d1ed886aff7ccd9bdec72c079e314d;hb=3ddb31505810854e19e93517c2077a86505052b2;hp=978fb8a2e2c2d23c5ea046dfa33c382bc706a7f2;hpb=bb35f74f287988bbfb2815b4c7f55a1d861dccfd;p=YACASL2.git diff --git a/src/exec.c b/src/exec.c index 978fb8a..ca1dfe0 100644 --- a/src/exec.c +++ b/src/exec.c @@ -1,9 +1,4 @@ -#include -#include -#include - #include "exec.h" -#include "cerr.h" /** * @brief プログラムレジスタ(PR)を表すWORD値を文字列に変換 @@ -109,7 +104,7 @@ static CERR cerr_load[] = { }; /** - * @brief 実行モード: trace, logical, dump, debugger + * @brief 実行モード: trace, logical, dump, step */ EXECMODE execmode = {false, false, false, false}; @@ -811,8 +806,8 @@ void exec() fprintf(stdout, "\n"); } /* デバッガーモードの場合、デバッガーを起動 */ - if(execmode.debugger == true) { - debugger(); + if(execmode.step == true || getbps(sys->cpu->pr) == true) { + monitor(); } /* プログラムレジスタをチェック */ if(sys->cpu->pr >= sys->memsize) { @@ -849,6 +844,7 @@ void exec() } while(clock_end - clock_begin < CLOCKS_PER_SEC / sys->clocks); } execfin: + freebps(); free_code_cmdtype(); /* 命令のコードとタイプがキーのハッシュ表を解放 */ if(cerr->num > 0) { fprintf(stderr, "Execute error - %d: %s\n", cerr->num, cerr->msg);