diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-07-05 01:42:09 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-07-05 01:42:09 +0000 |
commit | e8b0aa4ca047b06d657735e2cdf10c3f58f2d9bb (patch) | |
tree | 1f4b80581e6454658b748b9c45f54ffb008f35fe /.gdbinit | |
parent | 6bbcf6f43d55e3b617f780f6c2812195622b15fe (diff) | |
download | bundler-e8b0aa4ca047b06d657735e2cdf10c3f58f2d9bb.tar.gz |
* include/ruby/{node,ruby}.h, ruby.c: added enum constants for gdb
support. [ruby-dev:31066]
* .gdbinit: some improvements.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to '.gdbinit')
-rw-r--r-- | .gdbinit | 399 |
1 files changed, 358 insertions, 41 deletions
@@ -1,19 +1,9 @@ -set $fl_ushift = 11 -set $fl_user1 = 1 << ($fl_ushift + 0) -set $fl_user1 = 1 << ($fl_ushift + 1) -set $fl_user2 = 1 << ($fl_ushift + 2) -set $fl_user3 = 1 << ($fl_ushift + 3) -set $fl_user4 = 1 << ($fl_ushift + 4) -set $fl_user5 = 1 << ($fl_ushift + 5) -set $fl_user6 = 1 << ($fl_ushift + 6) -set $fl_user7 = 1 << ($fl_ushift + 7) - define rp - if $arg0 & 1 - printf "FIXNUM: %d\n", ((long)$arg0) >> 1 + if (long)$arg0 & 1 + printf "FIXNUM: %d\n", $arg0 >> 1 else - if ($arg0 & 0xff) == 0x0e - printf "SYMBOL(%d)\n", ((long)$arg0) >> 8 + if ((long)$arg0 & 0xff) == 0x0e + printf "SYMBOL(%d)\n", $arg0 >> 8 else if $arg0 == 0 echo false\n @@ -27,84 +17,115 @@ define rp if $arg0 == 6 echo undef\n else - if $arg0 & 0x03 + if (long)$arg0 & 0x03 echo immediate\n else set $flags = ((struct RBasic*)$arg0)->flags if ($flags & 0x1f) == 0x00 - printf "T_NONE(0x%08x)\n", $arg0 + printf "T_NONE: " + print (struct RBasic *)$arg0 else if ($flags & 0x1f) == 0x01 - printf "T_NIL(0x%08x)\n", $arg0 + printf "T_NIL: " + print (struct RBasic *)$arg0 else if ($flags & 0x1f) == 0x02 - printf "T_OBJECT(0x%08x)\n", $arg0 + printf "T_OBJECT: " + print (struct RObject *)$arg0 else if ($flags & 0x1f) == 0x03 - printf "T_CLASS(0x%08x)\n", $arg0 + printf "T_CLASS: " + print (struct RClass *)$arg0 else if ($flags & 0x1f) == 0x04 - printf "T_ICLASS(0x%08x)\n", $arg0 + printf "T_ICLASS: " + print (struct RClass *)$arg0 else if ($flags & 0x1f) == 0x05 - printf "T_MODULE(0x%08x)\n", $arg0 + printf "T_MODULE: " + print (struct RClass *)$arg0 else if ($flags & 0x1f) == 0x06 - printf "T_FLOAT(0x%08x): %.16g\n", $arg0, (((struct RFloat*)$arg0)->value) + printf "T_FLOAT: %.16g ", (((struct RFloat*)$arg0)->value) + print (struct RFloat *)$arg0 else if ($flags & 0x1f) == 0x07 - printf "T_STRING(0x%08x): \"%s\"\n", $arg0, ($flags & $fl_user1) ? ((struct RString*)$arg0)->as.heap.ptr : ((struct RString*)$arg0)->as.ary + printf "T_STRING: \"%s\" ", ($flags & RUBY_FL_USER1) ? ((struct RString*)$arg0)->as.heap.ptr : ((struct RString*)$arg0)->as.ary + print (struct RString *)$arg0 else if ($flags & 0x1f) == 0x08 - printf "T_REGEXP(0x%08x): \"%s\"\n", $arg0, (((struct RRegexp*)$arg0)->str) + printf "T_REGEXP: \"%s\" ", (((struct RRegexp*)$arg0)->str) + print (struct RRegexp *)$arg0 else if ($flags & 0x1f) == 0x09 - printf "T_ARRAY(0x%08x) len=%d\n", $arg0, ((struct RArray*)$arg0)->len + printf "T_ARRAY: len=%d ", ((struct RArray*)$arg0)->len + print (struct RArray *)$arg0 + x/xw ((struct RArray*)$arg0)->ptr else if ($flags & 0x1f) == 0x0a - printf "T_FIXNUM(0x%08x)\n", $arg0 + printf "T_FIXNUM: " + print (struct RBasic *)$arg0 else if ($flags & 0x1f) == 0x0b - printf "T_HASH(0x%08x)\n", $arg0 + printf "T_HASH: len=%d ", ((struct RHash *)$arg0)->tbl ? ((struct RHash *)$arg0)->tbl->num_entries : 0 + print (struct RHash *)$arg0 else if ($flags & 0x1f) == 0x0c - printf "T_STRUCT(0x%08x)\n", $arg0 + printf "T_STRUCT: len=%d ", (($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? ($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) >> (RUBY_FL_USHIFT+1) : ((struct RStruct *)$arg0)->as.heap.len) + print (struct RStruct *)$arg0 + x/xw (($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? ((struct RStruct *)$arg0)->as.ary : ((struct RStruct *)$arg0)->as.heap.len) else if ($flags & 0x1f) == 0x0d - printf "T_BIGNUM(0x%08x): sign=%d len=%d\n", $arg0, ((struct RBignum*)$arg0)->sign, ((struct RBignum*)$arg0)->len + printf "T_BIGNUM: sign=%d len=%d ", ((struct RBignum*)$arg0)->sign, ((struct RBignum*)$arg0)->len + print (struct RBignum *)$arg0 + x/xw ((struct RBignum*)$arg0)->digits else if ($flags & 0x1f) == 0x0e - printf "T_FILE(0x%08x)\n", $arg0 + printf "T_FILE: " + print (struct RFile *)$arg0 + output *((struct RFile *)$arg0)->fptr + printf "\n" else if ($flags & 0x1f) == 0x10 - printf "T_TRUE(0x%08x)\n", $arg0 + printf "T_TRUE: " + print (struct RBasic *)$arg0 else if ($flags & 0x1f) == 0x11 - printf "T_FALSE(0x%08x)\n", $arg0 + printf "T_FALSE: " + print (struct RBasic *)$arg0 else if ($flags & 0x1f) == 0x12 - printf "T_DATA(0x%08x)\n", $arg0 + printf "T_DATA: " + print (struct RData *)$arg0 else if ($flags & 0x1f) == 0x13 - printf "T_MATCH(0x%08x)\n", $arg0 + printf "T_MATCH: " + print (struct RMatch *)$arg0 else if ($flags & 0x1f) == 0x14 - printf "T_SYMBOL(0x%08x)\n", $arg0 + printf "T_SYMBOL: " + print (struct RBasic *)$arg0 else if ($flags & 0x1f) == 0x1a - printf "T_VALUES(0x%08x)\n", $arg0 + printf "T_VALUES: " + print (struct RBasic *)$arg0 else if ($flags & 0x1f) == 0x1b - printf "T_BLOCK(0x%08x)\n", $arg0 + printf "T_BLOCK: " + print (struct RBasic *)$arg0 else if ($flags & 0x1f) == 0x1c - printf "T_UNDEF(0x%08x)\n", $arg0 + printf "T_UNDEF: " + print (struct RBasic *)$arg0 else if ($flags & 0x1f) == 0x1f - printf "T_NODE(0x%08x)\n", $arg0 - print (enum node_type)(($flags >> 11) & 0xff) + printf "T_NODE(" + output (enum node_type)(($flags&NODE_TYPEMASK)>>NODE_TYPESHIFT) + printf "): " + print *(NODE *)$arg0 else - printf "unknown(0x%08x)\n", $arg0 + printf "unknown: " + print (struct RBasic *)$arg0 end end end @@ -140,3 +161,299 @@ end document rp Print a Ruby's VALUE. end + +define nd_type + print (enum node_type)((((NODE*)$arg0)->flags&NODE_TYPEMASK)>>NODE_TYPESHIFT) +end +document nd_type + Print a Ruby' node type. +end + +define nd_file + print ((NODE*)$arg0)->nd_file +end +document nd_file + Print the source file name of a node. +end + +define nd_line + print ((unsigned int)((((NODE*)$arg0)->flags>>NODE_LSHIFT)&NODE_LMASK)) +end +document nd_line + Print the source line number of a node. +end + +# Print members of ruby node. + +define nd_head + printf "u1.node: " + rp $arg0.u1.node +end + +define nd_alen + printf "u2.argc: " + p $arg0.u2.argc +end + +define nd_next + printf "u3.node: " + rp $arg0.u3.node +end + + +define nd_cond + printf "u1.node: " + rp $arg0.u1.node +end + +define nd_body + printf "u2.node: " + rp $arg0.u2.node +end + +define nd_else + printf "u3.node: " + rp $arg0.u3.node +end + + +define nd_orig + printf "u3.value: " + rp $arg0.u3.value +end + + +define nd_resq + printf "u2.node: " + rp $arg0.u2.node +end + +define nd_ensr + printf "u3.node: " + rp $arg0.u3.node +end + + +define nd_1st + printf "u1.node: " + rp $arg0.u1.node +end + +define nd_2nd + printf "u2.node: " + rp $arg0.u2.node +end + + +define nd_stts + printf "u1.node: " + rp $arg0.u1.node +end + + +define nd_entry + printf "u3.entry: " + p $arg0.u3.entry +end + +define nd_vid + printf "u1.id: " + p $arg0.u1.id +end + +define nd_cflag + printf "u2.id: " + p $arg0.u2.id +end + +define nd_cval + printf "u3.value: " + rp $arg0.u3.value +end + + +define nd_cnt + printf "u3.cnt: " + p $arg0.u3.cnt +end + +define nd_tbl + printf "u1.tbl: " + p $arg0.u1.tbl +end + + +define nd_var + printf "u1.node: " + rp $arg0.u1.node +end + +define nd_ibdy + printf "u2.node: " + rp $arg0.u2.node +end + +define nd_iter + printf "u3.node: " + rp $arg0.u3.node +end + + +define nd_value + printf "u2.node: " + rp $arg0.u2.node +end + +define nd_aid + printf "u3.id: " + p $arg0.u3.id +end + + +define nd_lit + printf "u1.value: " + rp $arg0.u1.value +end + + +define nd_frml + printf "u1.node: " + rp $arg0.u1.node +end + +define nd_rest + printf "u2.argc: " + p $arg0.u2.argc +end + +define nd_opt + printf "u1.node: " + rp $arg0.u1.node +end + + +define nd_recv + printf "u1.node: " + rp $arg0.u1.node +end + +define nd_mid + printf "u2.id: " + p $arg0.u2.id +end + +define nd_args + printf "u3.node: " + rp $arg0.u3.node +end + + +define nd_noex + printf "u1.id: " + p $arg0.u1.id +end + +define nd_defn + printf "u3.node: " + rp $arg0.u3.node +end + + +define nd_old + printf "u1.id: " + p $arg0.u1.id +end + +define nd_new + printf "u2.id: " + p $arg0.u2.id +end + + +define nd_cfnc + printf "u1.cfunc: " + p $arg0.u1.cfunc +end + +define nd_argc + printf "u2.argc: " + p $arg0.u2.argc +end + + +define nd_cname + printf "u1.id: " + p $arg0.u1.id +end + +define nd_super + printf "u3.node: " + rp $arg0.u3.node +end + + +define nd_modl + printf "u1.id: " + p $arg0.u1.id +end + +define nd_clss + printf "u1.value: " + rp $arg0.u1.value +end + + +define nd_beg + printf "u1.node: " + rp $arg0.u1.node +end + +define nd_end + printf "u2.node: " + rp $arg0.u2.node +end + +define nd_state + printf "u3.state: " + p $arg0.u3.state +end + +define nd_rval + printf "u2.value: " + rp $arg0.u2.value +end + + +define nd_nth + printf "u2.argc: " + p $arg0.u2.argc +end + + +define nd_tag + printf "u1.id: " + p $arg0.u1.id +end + +define nd_tval + printf "u2.value: " + rp $arg0.u2.value +end + +define rb_p + call rb_p($arg0) +end + +define rb_id2name + call rb_id2name($arg0) +end + +define rb_classname + call classname($arg0) + rb_p $ + print *(struct RClass*)$arg0 +end + +define rb_backtrace + call rb_backtrace() +end |