summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gdbinit15
-rw-r--r--ChangeLog6
-rw-r--r--ruby.c3
3 files changed, 23 insertions, 1 deletions
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 <akr@fsij.org>
+
+ * 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 <nobu@ruby-lang.org>
* 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;