diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2016-03-07 23:07:51 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2016-03-07 23:07:51 +0200 |
commit | e8c440a6136db3a1b7503e5224474b3b7f03363e (patch) | |
tree | f816a0afba8ffd6bf5c12de86fe6733ff9591972 /debug.c | |
parent | 309b2057256e2148b444ba556ca6639f73da188f (diff) | |
download | egawk-e8c440a6136db3a1b7503e5224474b3b7f03363e.tar.gz egawk-e8c440a6136db3a1b7503e5224474b3b7f03363e.tar.bz2 egawk-e8c440a6136db3a1b7503e5224474b3b7f03363e.zip |
Improve instruction dump.
Diffstat (limited to 'debug.c')
-rw-r--r-- | debug.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -3797,6 +3797,31 @@ print_instruction(INSTRUCTION *pc, Func_print print_func, FILE *fp, int in_dump) print_func(fp, "[branch_end = %p]\n", pc->branch_end); break; + case Op_K_while: + print_func(fp, "[while_body = %p] [target_break = %p]\n", (pc+1)->while_body, pc->target_break); + break; + + case Op_K_do: + print_func(fp, "[doloop_cond = %p] [target_break = %p]\n", (pc+1)->doloop_cond, pc->target_break); + break; + + case Op_K_for: + print_func(fp, "[forloop_cond = %p] ", (pc+1)->forloop_cond); + /* fall through */ + case Op_K_arrayfor: + print_func(fp, "[forloop_body = %p] ", (pc+1)->forloop_body); + print_func(fp, "[target_break = %p] [target_continue = %p]\n", pc->target_break, pc->target_continue); + break; + + case Op_K_switch: + print_func(fp, "[switch_start = %p] [switch_end = %p]\n", (pc+1)->switch_start, (pc+1)->switch_end); + break; + + case Op_K_case: + case Op_K_default: + print_func(fp, "[stmt_start = %p] [stmt_end = %p]\n", pc->stmt_start, pc->stmt_end); + break; + case Op_var_update: print_func(fp, "[update_%s()]\n", get_spec_varname(pc->update_var)); break; |