summaryrefslogtreecommitdiffstats
path: root/.gdbinit
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-10-09 05:47:04 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-10-09 05:47:04 +0000
commit54d461f9053098d7584425c9208288057f59e34f (patch)
treeabeb5d04d71bf6318c1e81f88f5ff9877c51ed2d /.gdbinit
parentb014282b40e69541c14e678ec79a01d8896103ab (diff)
downloadruby-54d461f9053098d7584425c9208288057f59e34f.tar.gz
ruby-54d461f9053098d7584425c9208288057f59e34f.tar.xz
ruby-54d461f9053098d7584425c9208288057f59e34f.zip
* include/ruby/ruby.h: embeds the elements of an array into its
struct RArray for # of elements <= 3. * array.c: ditto. * gc.c (gc_mark_children): following the change of struct RArray. * ext/tk/tcltklib.c (ip_ruby_cmp): ditto. * parse.y (coverage): ditto. * proc.c (curry): ditto. * .gdbinit: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to '.gdbinit')
-rw-r--r--.gdbinit29
1 files changed, 27 insertions, 2 deletions
diff --git a/.gdbinit b/.gdbinit
index 8598cf0ab..96e033fa8 100644
--- a/.gdbinit
+++ b/.gdbinit
@@ -104,9 +104,34 @@ define rp
print (struct RRegexp *)$arg0
else
if ($flags & RUBY_T_MASK) == RUBY_T_ARRAY
- printf "T_ARRAY: len=%ld ", ((struct RArray*)$arg0)->len
+ if ($flags & RUBY_FL_USER1)
+ set $len = (($flags & (RUBY_FL_USER3|RUBY_FL_USER4)) >> (RUBY_FL_USHIFT+3))
+ printf "T_ARRAY: len=%ld ", $len
+ printf "(embed) "
+ if ($len == 0)
+ printf "{(empty)} "
+ else
+ output/x *((VALUE*)((struct RArray*)$arg0)->as.ary) @ $len
+ printf " "
+ end
+ else
+ set $len = ((struct RArray*)$arg0)->as.heap.len
+ printf "T_ARRAY: len=%ld ", $len
+ if ($flags & RUBY_FL_USER2)
+ printf "(shared) shared="
+ output/x ((struct RArray*)$arg0)->as.heap.aux.shared
+ printf " "
+ else
+ printf "(ownership) capa=%ld ", ((struct RArray*)$arg0)->as.heap.aux.capa
+ end
+ if ($len == 0)
+ printf "{(empty)} "
+ else
+ output/x *((VALUE*)((struct RArray*)$arg0)->as.heap.ptr) @ $len
+ printf " "
+ end
+ end
print (struct RArray *)$arg0
- x/xw ((struct RArray*)$arg0)->ptr
else
if ($flags & RUBY_T_MASK) == RUBY_T_FIXNUM
printf "T_FIXNUM: "