diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-02-19 20:44:16 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-02-19 20:44:16 +0900 |
| commit | baf8fbe6edf8464e86523ee5753aa20717e9d8b3 (patch) | |
| tree | 2ea29c94dac1b0ea2aa618665c629a4697586fb0 /mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c | |
| parent | 8781596c3595980adb605341a8f272f96253622d (diff) | |
| parent | 477ffc747368f26ee90cb03fa69d23690298fc3d (diff) | |
| download | mruby-baf8fbe6edf8464e86523ee5753aa20717e9d8b3.tar.gz mruby-baf8fbe6edf8464e86523ee5753aa20717e9d8b3.zip | |
Merge pull request #4286 from kimushu/mrdb-local-variables
mrdb: add "info locals" command
Diffstat (limited to 'mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c')
| -rw-r--r-- | mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c index cca636711..25f071589 100644 --- a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +++ b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c @@ -36,7 +36,7 @@ dbgcmd_print(mrb_state *mrb, mrdb_state *mrdb) expr = mrb_str_cat_cstr(mrb, expr, mrdb->words[wcnt]); } - result = mrb_debug_eval(mrb, mrdb->dbg, RSTRING_PTR(expr), RSTRING_LEN(expr), NULL); + result = mrb_debug_eval(mrb, mrdb->dbg, RSTRING_PTR(expr), RSTRING_LEN(expr), NULL, 0); /* $print_no = result */ s = mrb_str_cat_lit(mrb, result, "\0"); @@ -56,3 +56,26 @@ dbgcmd_eval(mrb_state *mrb, mrdb_state *mrdb) { return dbgcmd_print(mrb, mrdb); } + +dbgcmd_state +dbgcmd_info_local(mrb_state *mrb, mrdb_state *mrdb) +{ + mrb_value result; + mrb_value s; + int ai; + + ai = mrb_gc_arena_save(mrb); + + result = mrb_debug_eval(mrb, mrdb->dbg, "local_variables", 0, NULL, 1); + + s = mrb_str_cat_lit(mrb, result, "\0"); + printf("$%lu = %s\n", (unsigned long)mrdb->print_no++, RSTRING_PTR(s)); + + if (mrdb->print_no == 0) { + mrdb->print_no = 1; + } + + mrb_gc_arena_restore(mrb, ai); + + return DBGST_PROMPT; +} |
