summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
diff options
context:
space:
mode:
authorkimu_shu <[email protected]>2019-02-19 18:10:05 +0900
committerkimu_shu <[email protected]>2019-02-19 18:10:05 +0900
commit477ffc747368f26ee90cb03fa69d23690298fc3d (patch)
tree2f37105d3235e57b8e1098e9166cf32fe4327f65 /mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
parent971bfd13c152bb9ac8f09737b89a228c88e15d66 (diff)
downloadmruby-477ffc747368f26ee90cb03fa69d23690298fc3d.tar.gz
mruby-477ffc747368f26ee90cb03fa69d23690298fc3d.zip
Add "info locals" command to mrdb
Diffstat (limited to 'mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c')
-rw-r--r--mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c b/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
index c8700530f..f888d1430 100644
--- a/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
+++ b/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
@@ -31,7 +31,7 @@ mrdb_check_syntax(mrb_state *mrb, mrb_debug_context *dbg, const char *expr, size
}
mrb_value
-mrb_debug_eval(mrb_state *mrb, mrb_debug_context *dbg, const char *expr, size_t len, mrb_bool *exc)
+mrb_debug_eval(mrb_state *mrb, mrb_debug_context *dbg, const char *expr, size_t len, mrb_bool *exc, int direct_eval)
{
void (*tmp)(struct mrb_state *, struct mrb_irep *, mrb_code *, mrb_value *);
mrb_value ruby_code;
@@ -48,6 +48,11 @@ mrb_debug_eval(mrb_state *mrb, mrb_debug_context *dbg, const char *expr, size_t
v = mrb_obj_value(mrb->exc);
mrb->exc = 0;
}
+ else if (direct_eval) {
+ recv = dbg->regs[0];
+
+ v = mrb_funcall(mrb, recv, expr, 0);
+ }
else {
/*
* begin