diff --git a/.gdbinit b/.gdbinit index 3dbeff6a00..5f67324456 100644 --- a/.gdbinit +++ b/.gdbinit @@ -56,7 +56,20 @@ define rp ((struct RString*)$arg0)->as.heap.ptr : \ ((struct RString*)$arg0)->as.ary) set print address on - printf " " + printf " encoding:%d ", ($flags & (RUBY_FL_USER8|RUBY_FL_USER9|RUBY_FL_USER10|RUBY_FL_USER11)) >> RUBY_ENCODING_SHIFT + if ($flags & (RUBY_FL_USER12|RUBY_FL_USER13)) == 0 + printf "coderange:unknown " + else + if ($flags & (RUBY_FL_USER12|RUBY_FL_USER13)) == RUBY_FL_USER12 + printf "coderange:single " + else + if ($flags & (RUBY_FL_USER12|RUBY_FL_USER13)) == RUBY_FL_USER13 + printf "coderange:single " + else + printf "coderange:broken " + end + end + end print (struct RString *)$arg0 else if ($flags & RUBY_T_MASK) == RUBY_T_REGEXP diff --git a/ChangeLog b/ChangeLog index a8ed539d92..e0713814bc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Oct 16 18:16:15 2007 Tanaka Akira + + * ruby.c (RUBY_ENCODING_SHIFT): added as enum. + + * .gdbinit (rp): show encoding and coderange for strings. + Tue Oct 16 14:48:38 2007 Nobuyoshi Nakada * parse.y (parser_regx_options): check if regexp encoding option diff --git a/ruby.c b/ruby.c index c39731385b..8c86ddfd47 100644 --- a/ruby.c +++ b/ruby.c @@ -59,6 +59,9 @@ static const union { enum ruby_special_consts special_consts; enum ruby_value_type value_type; enum node_type node_type; + enum { + RUBY_ENCODING_SHIFT = ENCODING_SHIFT + } various; } dummy_gdb_enums; const VALUE RUBY_FL_MARK = FL_MARK;