From e5c6454efa01aaeddf4bc59a5f32d5f1b872d5ec Mon Sep 17 00:00:00 2001 From: ko1 Date: Mon, 25 Jul 2016 08:00:46 +0000 Subject: * debug.c (ruby_debug_printf): use rb_raw_obj_info() instead of rb_inspect() because it is more robust way to see object internal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ debug.c | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 01f47dcb28..e216c586ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Mon Jul 25 16:59:00 2016 Koichi Sasada + + * debug.c (ruby_debug_printf): use rb_raw_obj_info() + instead of rb_inspect() because it is more robust way + to see object internal. + Sun Jul 24 16:33:13 2016 Martin Duerst * regenc.h/c, include/ruby/oniguruma.h, enc/ascii.c, big5.c, cp949.c, diff --git a/debug.c b/debug.c index a600259818..8a5e69bbf5 100644 --- a/debug.c +++ b/debug.c @@ -59,14 +59,16 @@ ruby_debug_printf(const char *format, ...) va_end(ap); } +#include "gc.h" + VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE obj) { if (level < debug_level) { - VALUE str; - str = rb_inspect(obj); - fprintf(stderr, "DBG> %s: %s\n", header, - obj == (VALUE)(SIGNED_VALUE)-1 ? "" : StringValueCStr(str)); + char buff[0x100]; + rb_raw_obj_info(buff, 0x100, obj); + + fprintf(stderr, "DBG> %s: %s\n", header, buff); fflush(stderr); } return obj; -- cgit v1.2.3