summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-bin-debugger
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2019-10-09 20:00:17 +0900
committerKOBAYASHI Shuji <[email protected]>2019-10-09 20:00:17 +0900
commit7f6e8e8ddc6b6f33e22c02c3b78280cb74db4725 (patch)
tree145ad74ba9044da03590644f1660460cf8a8592e /mrbgems/mruby-bin-debugger
parent7624e2342690930ca1aed2f6a45140b3ee605d46 (diff)
downloadmruby-7f6e8e8ddc6b6f33e22c02c3b78280cb74db4725.tar.gz
mruby-7f6e8e8ddc6b6f33e22c02c3b78280cb74db4725.zip
Fix that `print` command raises `FrozenError` in `mrdb`; ref 1f5a7f2f
#### Before this patch: ``` $ echo 'p true' | bin/mrdb /dev/null (/dev/null:1) mruby application exited. FrozenError: can't modify frozen String (-:0) ``` #### After this patch: ``` $ echo 'p true' | bin/mrdb /dev/null (/dev/null:1) $1 = true (/dev/null:1) ```
Diffstat (limited to 'mrbgems/mruby-bin-debugger')
-rw-r--r--mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c2
-rw-r--r--mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c b/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
index cdd7b6fa6..e8702f4df 100644
--- a/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
+++ b/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c
@@ -74,7 +74,7 @@ mrb_debug_eval(mrb_state *mrb, mrb_debug_context *dbg, const char *expr, size_t
*exc = mrb_obj_is_kind_of(mrb, v, mrb->eException_class);
}
- s = mrb_funcall(mrb, v, "inspect", 0);
+ s = mrb_inspect(mrb, v);
/* enable code_fetch_hook */
mrb->code_fetch_hook = tmp;
diff --git a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c
index 25f071589..f78c1e1fc 100644
--- a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c
+++ b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c
@@ -18,7 +18,6 @@ dbgcmd_print(mrb_state *mrb, mrdb_state *mrdb)
{
mrb_value expr;
mrb_value result;
- mrb_value s;
uint8_t wcnt;
int ai;
@@ -39,8 +38,9 @@ dbgcmd_print(mrb_state *mrb, mrdb_state *mrdb)
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");
- printf("$%lu = %s\n", (unsigned long)mrdb->print_no++, RSTRING_PTR(s));
+ printf("$%lu = ", (unsigned long)mrdb->print_no++);
+ fwrite(RSTRING_PTR(result), RSTRING_LEN(result), 1, stdout);
+ putc('\n', stdout);
if (mrdb->print_no == 0) {
mrdb->print_no = 1;