summaryrefslogtreecommitdiff
path: root/.gdbinit
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-06-01 23:28:46 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-06-01 23:28:46 +0000
commit8978d52ac849e6da932e155678c1fd335789cec3 (patch)
tree05f0883a276e1dcb089d9f029968e096e5beaf0c /.gdbinit
parent72f14f3aa0df4f7dd76f75c1a12a28adfc848f88 (diff)
* .gdbinit: classic version.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@28122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to '.gdbinit')
-rw-r--r--.gdbinit502
1 files changed, 502 insertions, 0 deletions
diff --git a/.gdbinit b/.gdbinit
new file mode 100644
index 0000000000..74bead573b
--- /dev/null
+++ b/.gdbinit
@@ -0,0 +1,502 @@
+define rp
+ if ($arg0 & 0x1)
+ echo T_FIXNUM\n
+ print (long)$arg0 >> 1
+ else
+ if ($arg0 == 0)
+ echo T_FALSE\n
+ else
+ if ($arg0 == 2)
+ echo T_TRUE\n
+ else
+ if ($arg0 == 4)
+ echo T_NIL\n
+ else
+ if ($arg0 == 6)
+ echo T_UNDEF\n
+ else
+ if (($arg0 & 0xff) == 0x0e)
+ echo T_SYMBOL\n
+ output $arg0 >> 8
+ echo \n
+ call rb_id2name($arg0 >> 8)
+ else
+ set $rbasic = (struct RBasic*)$arg0
+ # output $rbasic
+ # echo \ =\
+ # output *$rbasic
+ # echo \n
+ set $flags = (*$rbasic).flags & 0x3f
+ if ($flags == 0x01)
+ echo T_NIL\n
+ echo impossible\n
+ else
+ if ($flags == 0x02)
+ echo T_OBJECT\n
+ print *(struct RObject*)$rbasic
+ else
+ if ($flags == 0x03)
+ echo T_CLASS\n
+ print *(struct RClass*)$rbasic
+# rb_classname($arg0)
+ else
+ if ($flags == 0x04)
+ echo T_ICLASS\n
+ print *(struct RClass*)$rbasic
+ else
+ if ($flags == 0x05)
+ echo T_MODULE\n
+ print *(struct RClass*)$rbasic
+ else
+ if ($flags == 0x06)
+ echo T_FLOAT\n
+ print *(struct RFloat*)$rbasic
+ else
+ if ($flags == 0x07)
+ echo T_STRING\n
+ print *(struct RString*)$rbasic
+ else
+ if ($flags == 0x08)
+ echo T_REGEXP\n
+ print *(struct RRegexp*)$rbasic
+ else
+ if ($flags == 0x09)
+ echo T_ARRAY\n
+ print *(struct RArray*)$rbasic
+ else
+ if ($flags == 0x0a)
+ echo T_FIXNUM\n
+ echo impossible\n
+ else
+ if ($flags == 0x0b)
+ echo T_HASH\n
+ print *(struct RHash*)$rbasic
+ else
+ if ($flags == 0x0c)
+ echo T_STRUCT\n
+ print *(struct RStruct*)$rbasic
+ else
+ if ($flags == 0x0d)
+ echo T_BIGNUM\n
+ print *(struct RBignum*)$rbasic
+ else
+ if ($flags == 0x0e)
+ echo T_FILE\n
+ print *(struct RFile*)$rbasic
+ else
+ if ($flags == 0x20 || $flags == 0x10)
+ echo T_TRUE\n
+ echo impossible\n
+ else
+ if ($flags == 0x21 || $flags == 0x11)
+ echo T_FALSE\n
+ echo impossible\n
+ else
+ if ($flags == 0x22 || $flags == 0x12)
+ echo T_DATA\n
+ print *(struct RData*)$rbasic
+ else
+ if ($flags == 0x23 || $flags == 0x13)
+ echo T_MATCH\n
+ print *(struct RMatch*)$rbasic
+ else
+ if ($flags == 0x24 || $flags == 0x14)
+ echo T_SYMBOL\n
+ echo impossible\n
+ else
+ if ($flags == 0x3c || $flags == 0x1c)
+ echo T_UNDEF\n
+ echo impossible\n
+ else
+ if ($flags == 0x3b)
+ echo T_BLOCK\n
+ else
+ if ($flags == 0x3d || $flags == 0x1d)
+ echo T_VARMAP\n
+ else
+ if ($flags == 0x3e || $flags == 0x1e)
+ echo T_SCOPE\n
+ else
+ if ($flags == 0x3f || $flags == 0x1f)
+ echo T_NODE\n
+ print (NODE*)$arg0
+ else
+ echo Unknown\n
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+
+ end
+ end
+ end
+ end
+ end
+ end
+end
+document rp
+rubyの組み込みオブジェクトを表示する
+end
+
+define nd_type
+ print (enum node_type)((((NODE*)$arg0)->flags>>node_typemask)&node_typeshift)
+end
+document nd_type
+ruby node の型を表示
+end
+
+define nd_file
+ print ((NODE*)$arg0)->nd_file
+end
+document nd_file
+node のソースファイル名を表示
+end
+
+define nd_line
+ print ((unsigned int)((((NODE*)$arg0)->flags>>node_lshift)&node_lmask))
+end
+document nd_line
+node の行番号を表示
+end
+
+# ruby node のメンバを表示
+
+define nd_head
+ print "u1.node"
+ what $arg0.u1.node
+ p $arg0.u1.node
+end
+
+define nd_alen
+ print "u2.argc"
+ what $arg0.u2.argc
+ p $arg0.u2.argc
+end
+
+define nd_next
+ print "u3.node"
+ what $arg0.u3.node
+ p $arg0.u3.node
+end
+
+
+define nd_cond
+ print "u1.node"
+ what $arg0.u1.node
+ p $arg0.u1.node
+end
+
+define nd_body
+ print "u2.node"
+ what $arg0.u2.node
+ p $arg0.u2.node
+end
+
+define nd_else
+ print "u3.node"
+ what $arg0.u3.node
+ p $arg0.u3.node
+end
+
+
+define nd_orig
+ print "u3.value"
+ what $arg0.u3.value
+ p $arg0.u3.value
+end
+
+
+define nd_resq
+ print "u2.node"
+ what $arg0.u2.node
+ p $arg0.u2.node
+end
+
+define nd_ensr
+ print "u3.node"
+ what $arg0.u3.node
+ p $arg0.u3.node
+end
+
+
+define nd_1st
+ print "u1.node"
+ what $arg0.u1.node
+ p $arg0.u1.node
+end
+
+define nd_2nd
+ print "u2.node"
+ what $arg0.u2.node
+ p $arg0.u2.node
+end
+
+
+define nd_stts
+ print "u1.node"
+ what $arg0.u1.node
+ p $arg0.u1.node
+end
+
+
+define nd_entry
+ print "u3.entry"
+ what $arg0.u3.entry
+ p $arg0.u3.entry
+end
+
+define nd_vid
+ print "u1.id"
+ what $arg0.u1.id
+ p $arg0.u1.id
+end
+
+define nd_cflag
+ print "u2.id"
+ what $arg0.u2.id
+ p $arg0.u2.id
+end
+
+define nd_cval
+ print "u3.value"
+ what $arg0.u3.value
+ p $arg0.u3.value
+end
+
+
+define nd_cnt
+ print "u3.cnt"
+ what $arg0.u3.cnt
+ p $arg0.u3.cnt
+end
+
+define nd_tbl
+ print "u1.tbl"
+ what $arg0.u1.tbl
+ p $arg0.u1.tbl
+end
+
+
+define nd_var
+ print "u1.node"
+ what $arg0.u1.node
+ p $arg0.u1.node
+end
+
+define nd_ibdy
+ print "u2.node"
+ what $arg0.u2.node
+ p $arg0.u2.node
+end
+
+define nd_iter
+ print "u3.node"
+ what $arg0.u3.node
+ p $arg0.u3.node
+end
+
+
+define nd_value
+ print "u2.node"
+ what $arg0.u2.node
+ p $arg0.u2.node
+end
+
+define nd_aid
+ print "u3.id"
+ what $arg0.u3.id
+ p $arg0.u3.id
+end
+
+
+define nd_lit
+ print "u1.value"
+ what $arg0.u1.value
+ p $arg0.u1.value
+end
+
+
+define nd_frml
+ print "u1.node"
+ what $arg0.u1.node
+ p $arg0.u1.node
+end
+
+define nd_rest
+ print "u2.argc"
+ what $arg0.u2.argc
+ p $arg0.u2.argc
+end
+
+define nd_opt
+ print "u1.node"
+ what $arg0.u1.node
+ p $arg0.u1.node
+end
+
+
+define nd_recv
+ print "u1.node"
+ what $arg0.u1.node
+ p $arg0.u1.node
+end
+
+define nd_mid
+ print "u2.id"
+ what $arg0.u2.id
+ p $arg0.u2.id
+end
+
+define nd_args
+ print "u3.node"
+ what $arg0.u3.node
+ p $arg0.u3.node
+end
+
+
+define nd_noex
+ print "u1.id"
+ what $arg0.u1.id
+ p $arg0.u1.id
+end
+
+define nd_defn
+ print "u3.node"
+ what $arg0.u3.node
+ p $arg0.u3.node
+end
+
+
+define nd_old
+ print "u1.id"
+ what $arg0.u1.id
+ p $arg0.u1.id
+end
+
+define nd_new
+ print "u2.id"
+ what $arg0.u2.id
+ p $arg0.u2.id
+end
+
+
+define nd_cfnc
+ print "u1.cfunc"
+ what $arg0.u1.cfunc
+ p $arg0.u1.cfunc
+end
+
+define nd_argc
+ print "u2.argc"
+ what $arg0.u2.argc
+ p $arg0.u2.argc
+end
+
+
+define nd_cname
+ print "u1.id"
+ what $arg0.u1.id
+ p $arg0.u1.id
+end
+
+define nd_super
+ print "u3.node"
+ what $arg0.u3.node
+ p $arg0.u3.node
+end
+
+
+define nd_modl
+ print "u1.id"
+ what $arg0.u1.id
+ p $arg0.u1.id
+end
+
+define nd_clss
+ print "u1.value"
+ what $arg0.u1.value
+ p $arg0.u1.value
+end
+
+
+define nd_beg
+ print "u1.node"
+ what $arg0.u1.node
+ p $arg0.u1.node
+end
+
+define nd_end
+ print "u2.node"
+ what $arg0.u2.node
+ p $arg0.u2.node
+end
+
+define nd_state
+ print "u3.state"
+ what $arg0.u3.state
+ p $arg0.u3.state
+end
+
+define nd_rval
+ print "u2.value"
+ what $arg0.u2.value
+ p $arg0.u2.value
+end
+
+
+define nd_nth
+ print "u2.argc"
+ what $arg0.u2.argc
+ p $arg0.u2.argc
+end
+
+
+define nd_tag
+ print "u1.id"
+ what $arg0.u1.id
+ p $arg0.u1.id
+end
+
+define nd_tval
+ print "u2.value"
+ what $arg0.u2.value
+ p $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 $
+ p *(struct RClass*)$arg0
+end
+
+define rb_backtrace
+ call rb_backtrace()
+end