mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* template/id.h.tmpl, id.h (enum ruby_method_ids): added some IDs.
* debug.c (dummy_gdb_enums): added enum ruby_method_ids. * .gdbinit (rp): improved output of Symbol. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
7427390cad
commit
1b4d0c76de
5 changed files with 210 additions and 117 deletions
301
.gdbinit
301
.gdbinit
|
@ -1,63 +1,132 @@
|
||||||
define rp
|
define rp
|
||||||
if (VALUE)$arg0 & RUBY_FIXNUM_FLAG
|
if (VALUE)($arg0) & RUBY_FIXNUM_FLAG
|
||||||
printf "FIXNUM: %ld\n", (long)$arg0 >> 1
|
printf "FIXNUM: %ld\n", (long)($arg0) >> 1
|
||||||
else
|
else
|
||||||
if ((VALUE)$arg0 & ~(~(VALUE)0<<RUBY_SPECIAL_SHIFT)) == RUBY_SYMBOL_FLAG
|
if ((VALUE)($arg0) & ~(~(VALUE)0<<RUBY_SPECIAL_SHIFT)) == RUBY_SYMBOL_FLAG
|
||||||
printf "SYMBOL(%ld)\n", $arg0 >> RUBY_SPECIAL_SHIFT
|
set $id = (($arg0) >> RUBY_SPECIAL_SHIFT)
|
||||||
|
if $id == '!' || $id == '+' || $id == '-' || $id == '*' || $id == '/' || $id == '%' || $id == '<' || $id == '>' || $id == '`'
|
||||||
|
printf "SYMBOL(:%c)\n", $id
|
||||||
|
else
|
||||||
|
if $id == idDot2
|
||||||
|
echo SYMBOL(:..)\n
|
||||||
|
else
|
||||||
|
if $id == idDot3
|
||||||
|
echo SYMBOL(:...)\n
|
||||||
|
else
|
||||||
|
if $id == idUPlus
|
||||||
|
echo SYMBOL(:+@)\n
|
||||||
|
else
|
||||||
|
if $id == idUMinus
|
||||||
|
echo SYMBOL(:-@)\n
|
||||||
|
else
|
||||||
|
if $id == idPow
|
||||||
|
echo SYMBOL(:**)\n
|
||||||
|
else
|
||||||
|
if $id == idCmp
|
||||||
|
echo SYMBOL(:<=>)\n
|
||||||
|
else
|
||||||
|
if $id == idLTLT
|
||||||
|
echo SYMBOL(:<<)\n
|
||||||
|
else
|
||||||
|
if $id == idLE
|
||||||
|
echo SYMBOL(:<=)\n
|
||||||
|
else
|
||||||
|
if $id == idGE
|
||||||
|
echo SYMBOL(:>=)\n
|
||||||
|
else
|
||||||
|
if $id == idEq
|
||||||
|
echo SYMBOL(:==)\n
|
||||||
|
else
|
||||||
|
if $id == idEqq
|
||||||
|
echo SYMBOL(:===)\n
|
||||||
|
else
|
||||||
|
if $id == idNeq
|
||||||
|
echo SYMBOL(:!=)\n
|
||||||
|
else
|
||||||
|
if $id == idEqTilde
|
||||||
|
echo SYMBOL(:=~)\n
|
||||||
|
else
|
||||||
|
if $id == idNeqTilde
|
||||||
|
echo SYMBOL(:!~)\n
|
||||||
|
else
|
||||||
|
if $id == idAREF
|
||||||
|
echo SYMBOL(:[])\n
|
||||||
|
else
|
||||||
|
if $id == idASET
|
||||||
|
echo SYMBOL(:[]=)\n
|
||||||
|
else
|
||||||
|
printf "SYMBOL(%ld)\n", $id
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
else
|
else
|
||||||
if $arg0 == RUBY_Qfalse
|
if ($arg0) == RUBY_Qfalse
|
||||||
echo false\n
|
echo false\n
|
||||||
else
|
else
|
||||||
if $arg0 == RUBY_Qtrue
|
if ($arg0) == RUBY_Qtrue
|
||||||
echo true\n
|
echo true\n
|
||||||
else
|
else
|
||||||
if $arg0 == RUBY_Qnil
|
if ($arg0) == RUBY_Qnil
|
||||||
echo nil\n
|
echo nil\n
|
||||||
else
|
else
|
||||||
if $arg0 == RUBY_Qundef
|
if ($arg0) == RUBY_Qundef
|
||||||
echo undef\n
|
echo undef\n
|
||||||
else
|
else
|
||||||
if (VALUE)$arg0 & RUBY_IMMEDIATE_MASK
|
if (VALUE)($arg0) & RUBY_IMMEDIATE_MASK
|
||||||
echo immediate\n
|
echo immediate\n
|
||||||
else
|
else
|
||||||
set $flags = ((struct RBasic*)$arg0)->flags
|
set $flags = ((struct RBasic*)($arg0))->flags
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_NONE
|
if ($flags & RUBY_T_MASK) == RUBY_T_NONE
|
||||||
printf "T_NONE: "
|
printf "T_NONE: "
|
||||||
print (struct RBasic *)$arg0
|
print (struct RBasic *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_NIL
|
if ($flags & RUBY_T_MASK) == RUBY_T_NIL
|
||||||
printf "T_NIL: "
|
printf "T_NIL: "
|
||||||
print (struct RBasic *)$arg0
|
print (struct RBasic *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_OBJECT
|
if ($flags & RUBY_T_MASK) == RUBY_T_OBJECT
|
||||||
printf "T_OBJECT: "
|
printf "T_OBJECT: "
|
||||||
print (struct RObject *)$arg0
|
print (struct RObject *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_CLASS
|
if ($flags & RUBY_T_MASK) == RUBY_T_CLASS
|
||||||
printf "T_CLASS: "
|
printf "T_CLASS: "
|
||||||
print (struct RClass *)$arg0
|
print (struct RClass *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_ICLASS
|
if ($flags & RUBY_T_MASK) == RUBY_T_ICLASS
|
||||||
printf "T_ICLASS: "
|
printf "T_ICLASS: "
|
||||||
print (struct RClass *)$arg0
|
print (struct RClass *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_MODULE
|
if ($flags & RUBY_T_MASK) == RUBY_T_MODULE
|
||||||
printf "T_MODULE: "
|
printf "T_MODULE: "
|
||||||
print (struct RClass *)$arg0
|
print (struct RClass *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_FLOAT
|
if ($flags & RUBY_T_MASK) == RUBY_T_FLOAT
|
||||||
printf "T_FLOAT: %.16g ", (((struct RFloat*)$arg0)->float_value)
|
printf "T_FLOAT: %.16g ", (((struct RFloat*)($arg0))->float_value)
|
||||||
print (struct RFloat *)$arg0
|
print (struct RFloat *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_STRING
|
if ($flags & RUBY_T_MASK) == RUBY_T_STRING
|
||||||
printf "T_STRING: "
|
printf "T_STRING: "
|
||||||
set print address off
|
set print address off
|
||||||
output (char *)(($flags & RUBY_FL_USER1) ? \
|
output (char *)(($flags & RUBY_FL_USER1) ? \
|
||||||
((struct RString*)$arg0)->as.heap.ptr : \
|
((struct RString*)($arg0))->as.heap.ptr : \
|
||||||
((struct RString*)$arg0)->as.ary)
|
((struct RString*)($arg0))->as.ary)
|
||||||
set print address on
|
set print address on
|
||||||
printf " bytesize:%ld ", ($flags & RUBY_FL_USER1) ? \
|
printf " bytesize:%ld ", ($flags & RUBY_FL_USER1) ? \
|
||||||
((struct RString*)$arg0)->as.heap.len : \
|
((struct RString*)($arg0))->as.heap.len : \
|
||||||
(($flags & (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) >> RUBY_FL_USHIFT+2)
|
(($flags & (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) >> RUBY_FL_USHIFT+2)
|
||||||
if !($flags & RUBY_FL_USER1)
|
if !($flags & RUBY_FL_USER1)
|
||||||
printf "(embed) "
|
printf "(embed) "
|
||||||
|
@ -83,10 +152,10 @@ define rp
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
print (struct RString *)$arg0
|
print (struct RString *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_REGEXP
|
if ($flags & RUBY_T_MASK) == RUBY_T_REGEXP
|
||||||
set $regsrc = ((struct RRegexp*)$arg0)->src
|
set $regsrc = ((struct RRegexp*)($arg0))->src
|
||||||
set $rsflags = ((struct RBasic*)$regsrc)->flags
|
set $rsflags = ((struct RBasic*)$regsrc)->flags
|
||||||
printf "T_REGEXP: "
|
printf "T_REGEXP: "
|
||||||
set print address off
|
set print address off
|
||||||
|
@ -107,7 +176,7 @@ define rp
|
||||||
printf "(fixed) "
|
printf "(fixed) "
|
||||||
end
|
end
|
||||||
printf "encoding:%d ", ($flags & RUBY_ENCODING_MASK) >> RUBY_ENCODING_SHIFT
|
printf "encoding:%d ", ($flags & RUBY_ENCODING_MASK) >> RUBY_ENCODING_SHIFT
|
||||||
print (struct RRegexp *)$arg0
|
print (struct RRegexp *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_ARRAY
|
if ($flags & RUBY_T_MASK) == RUBY_T_ARRAY
|
||||||
if ($flags & RUBY_FL_USER1)
|
if ($flags & RUBY_FL_USER1)
|
||||||
|
@ -117,113 +186,113 @@ define rp
|
||||||
if ($len == 0)
|
if ($len == 0)
|
||||||
printf "{(empty)} "
|
printf "{(empty)} "
|
||||||
else
|
else
|
||||||
output/x *((VALUE*)((struct RArray*)$arg0)->as.ary) @ $len
|
output/x *((VALUE*)((struct RArray*)($arg0))->as.ary) @ $len
|
||||||
printf " "
|
printf " "
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
set $len = ((struct RArray*)$arg0)->as.heap.len
|
set $len = ((struct RArray*)($arg0))->as.heap.len
|
||||||
printf "T_ARRAY: len=%ld ", $len
|
printf "T_ARRAY: len=%ld ", $len
|
||||||
if ($flags & RUBY_FL_USER2)
|
if ($flags & RUBY_FL_USER2)
|
||||||
printf "(shared) shared="
|
printf "(shared) shared="
|
||||||
output/x ((struct RArray*)$arg0)->as.heap.aux.shared
|
output/x ((struct RArray*)($arg0))->as.heap.aux.shared
|
||||||
printf " "
|
printf " "
|
||||||
else
|
else
|
||||||
printf "(ownership) capa=%ld ", ((struct RArray*)$arg0)->as.heap.aux.capa
|
printf "(ownership) capa=%ld ", ((struct RArray*)($arg0))->as.heap.aux.capa
|
||||||
end
|
end
|
||||||
if ($len == 0)
|
if ($len == 0)
|
||||||
printf "{(empty)} "
|
printf "{(empty)} "
|
||||||
else
|
else
|
||||||
output/x *((VALUE*)((struct RArray*)$arg0)->as.heap.ptr) @ $len
|
output/x *((VALUE*)((struct RArray*)($arg0))->as.heap.ptr) @ $len
|
||||||
printf " "
|
printf " "
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
print (struct RArray *)$arg0
|
print (struct RArray *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_FIXNUM
|
if ($flags & RUBY_T_MASK) == RUBY_T_FIXNUM
|
||||||
printf "T_FIXNUM: "
|
printf "T_FIXNUM: "
|
||||||
print (struct RBasic *)$arg0
|
print (struct RBasic *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_HASH
|
if ($flags & RUBY_T_MASK) == RUBY_T_HASH
|
||||||
printf "T_HASH: ",
|
printf "T_HASH: ",
|
||||||
if ((struct RHash *)$arg0)->ntbl
|
if ((struct RHash *)($arg0))->ntbl
|
||||||
printf "len=%ld ", ((struct RHash *)$arg0)->ntbl->num_entries
|
printf "len=%ld ", ((struct RHash *)($arg0))->ntbl->num_entries
|
||||||
end
|
end
|
||||||
print (struct RHash *)$arg0
|
print (struct RHash *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_STRUCT
|
if ($flags & RUBY_T_MASK) == RUBY_T_STRUCT
|
||||||
printf "T_STRUCT: len=%ld ", \
|
printf "T_STRUCT: len=%ld ", \
|
||||||
(($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? \
|
(($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? \
|
||||||
($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) >> (RUBY_FL_USHIFT+1) : \
|
($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) >> (RUBY_FL_USHIFT+1) : \
|
||||||
((struct RStruct *)$arg0)->as.heap.len)
|
((struct RStruct *)($arg0))->as.heap.len)
|
||||||
print (struct RStruct *)$arg0
|
print (struct RStruct *)($arg0)
|
||||||
x/xw (($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? \
|
x/xw (($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? \
|
||||||
((struct RStruct *)$arg0)->as.ary : \
|
((struct RStruct *)($arg0))->as.ary : \
|
||||||
((struct RStruct *)$arg0)->as.heap.ptr)
|
((struct RStruct *)($arg0))->as.heap.ptr)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_BIGNUM
|
if ($flags & RUBY_T_MASK) == RUBY_T_BIGNUM
|
||||||
printf "T_BIGNUM: sign=%d len=%ld ", \
|
printf "T_BIGNUM: sign=%d len=%ld ", \
|
||||||
(($flags & RUBY_FL_USER1) != 0), \
|
(($flags & RUBY_FL_USER1) != 0), \
|
||||||
(($flags & RUBY_FL_USER2) ? \
|
(($flags & RUBY_FL_USER2) ? \
|
||||||
($flags & (RUBY_FL_USER5|RUBY_FL_USER4|RUBY_FL_USER3)) >> (RUBY_FL_USHIFT+3) : \
|
($flags & (RUBY_FL_USER5|RUBY_FL_USER4|RUBY_FL_USER3)) >> (RUBY_FL_USHIFT+3) : \
|
||||||
((struct RBignum*)$arg0)->as.heap.len)
|
((struct RBignum*)($arg0))->as.heap.len)
|
||||||
if $flags & RUBY_FL_USER2
|
if $flags & RUBY_FL_USER2
|
||||||
printf "(embed) "
|
printf "(embed) "
|
||||||
end
|
end
|
||||||
print (struct RBignum *)$arg0
|
print (struct RBignum *)($arg0)
|
||||||
x/xw (($flags & RUBY_FL_USER2) ? \
|
x/xw (($flags & RUBY_FL_USER2) ? \
|
||||||
((struct RBignum*)$arg0)->as.ary : \
|
((struct RBignum*)($arg0))->as.ary : \
|
||||||
((struct RBignum*)$arg0)->as.heap.digits)
|
((struct RBignum*)($arg0))->as.heap.digits)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_RATIONAL
|
if ($flags & RUBY_T_MASK) == RUBY_T_RATIONAL
|
||||||
printf "T_RATIONAL: "
|
printf "T_RATIONAL: "
|
||||||
print (struct RRational *)$arg0
|
print (struct RRational *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_COMPLEX
|
if ($flags & RUBY_T_MASK) == RUBY_T_COMPLEX
|
||||||
printf "T_COMPLEX: "
|
printf "T_COMPLEX: "
|
||||||
print (struct RComplex *)$arg0
|
print (struct RComplex *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_FILE
|
if ($flags & RUBY_T_MASK) == RUBY_T_FILE
|
||||||
printf "T_FILE: "
|
printf "T_FILE: "
|
||||||
print (struct RFile *)$arg0
|
print (struct RFile *)($arg0)
|
||||||
output *((struct RFile *)$arg0)->fptr
|
output *((struct RFile *)($arg0))->fptr
|
||||||
printf "\n"
|
printf "\n"
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_TRUE
|
if ($flags & RUBY_T_MASK) == RUBY_T_TRUE
|
||||||
printf "T_TRUE: "
|
printf "T_TRUE: "
|
||||||
print (struct RBasic *)$arg0
|
print (struct RBasic *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_FALSE
|
if ($flags & RUBY_T_MASK) == RUBY_T_FALSE
|
||||||
printf "T_FALSE: "
|
printf "T_FALSE: "
|
||||||
print (struct RBasic *)$arg0
|
print (struct RBasic *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_DATA
|
if ($flags & RUBY_T_MASK) == RUBY_T_DATA
|
||||||
printf "T_DATA: "
|
printf "T_DATA: "
|
||||||
print (struct RData *)$arg0
|
print (struct RData *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_MATCH
|
if ($flags & RUBY_T_MASK) == RUBY_T_MATCH
|
||||||
printf "T_MATCH: "
|
printf "T_MATCH: "
|
||||||
print (struct RMatch *)$arg0
|
print (struct RMatch *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_SYMBOL
|
if ($flags & RUBY_T_MASK) == RUBY_T_SYMBOL
|
||||||
printf "T_SYMBOL: "
|
printf "T_SYMBOL: "
|
||||||
print (struct RBasic *)$arg0
|
print (struct RBasic *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_UNDEF
|
if ($flags & RUBY_T_MASK) == RUBY_T_UNDEF
|
||||||
printf "T_UNDEF: "
|
printf "T_UNDEF: "
|
||||||
print (struct RBasic *)$arg0
|
print (struct RBasic *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_NODE
|
if ($flags & RUBY_T_MASK) == RUBY_T_NODE
|
||||||
printf "T_NODE("
|
printf "T_NODE("
|
||||||
output (enum node_type)(($flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
|
output (enum node_type)(($flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
|
||||||
printf "): "
|
printf "): "
|
||||||
print *(NODE *)$arg0
|
print *(NODE *)($arg0)
|
||||||
else
|
else
|
||||||
if ($flags & RUBY_T_MASK) == RUBY_T_ZOMBIE
|
if ($flags & RUBY_T_MASK) == RUBY_T_ZOMBIE
|
||||||
printf "T_ZOMBIE: "
|
printf "T_ZOMBIE: "
|
||||||
print (struct RData *)$arg0
|
print (struct RData *)($arg0)
|
||||||
else
|
else
|
||||||
printf "unknown: "
|
printf "unknown: "
|
||||||
print (struct RBasic *)$arg0
|
print (struct RBasic *)($arg0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -262,21 +331,21 @@ document rp
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_type
|
define nd_type
|
||||||
print (enum node_type)((((NODE*)$arg0)->flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
|
print (enum node_type)((((NODE*)($arg0))->flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
|
||||||
end
|
end
|
||||||
document nd_type
|
document nd_type
|
||||||
Print a Ruby' node type.
|
Print a Ruby' node type.
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_file
|
define nd_file
|
||||||
print ((NODE*)$arg0)->nd_file
|
print ((NODE*)($arg0))->nd_file
|
||||||
end
|
end
|
||||||
document nd_file
|
document nd_file
|
||||||
Print the source file name of a node.
|
Print the source file name of a node.
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_line
|
define nd_line
|
||||||
print ((unsigned int)((((NODE*)$arg0)->flags>>RUBY_NODE_LSHIFT)&RUBY_NODE_LMASK))
|
print ((unsigned int)((((NODE*)($arg0))->flags>>RUBY_NODE_LSHIFT)&RUBY_NODE_LMASK))
|
||||||
end
|
end
|
||||||
document nd_line
|
document nd_line
|
||||||
Print the source line number of a node.
|
Print the source line number of a node.
|
||||||
|
@ -286,257 +355,257 @@ end
|
||||||
|
|
||||||
define nd_head
|
define nd_head
|
||||||
printf "u1.node: "
|
printf "u1.node: "
|
||||||
rp $arg0.u1.node
|
rp ($arg0).u1.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_alen
|
define nd_alen
|
||||||
printf "u2.argc: "
|
printf "u2.argc: "
|
||||||
p $arg0.u2.argc
|
p ($arg0).u2.argc
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_next
|
define nd_next
|
||||||
printf "u3.node: "
|
printf "u3.node: "
|
||||||
rp $arg0.u3.node
|
rp ($arg0).u3.node
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_cond
|
define nd_cond
|
||||||
printf "u1.node: "
|
printf "u1.node: "
|
||||||
rp $arg0.u1.node
|
rp ($arg0).u1.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_body
|
define nd_body
|
||||||
printf "u2.node: "
|
printf "u2.node: "
|
||||||
rp $arg0.u2.node
|
rp ($arg0).u2.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_else
|
define nd_else
|
||||||
printf "u3.node: "
|
printf "u3.node: "
|
||||||
rp $arg0.u3.node
|
rp ($arg0).u3.node
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_orig
|
define nd_orig
|
||||||
printf "u3.value: "
|
printf "u3.value: "
|
||||||
rp $arg0.u3.value
|
rp ($arg0).u3.value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_resq
|
define nd_resq
|
||||||
printf "u2.node: "
|
printf "u2.node: "
|
||||||
rp $arg0.u2.node
|
rp ($arg0).u2.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_ensr
|
define nd_ensr
|
||||||
printf "u3.node: "
|
printf "u3.node: "
|
||||||
rp $arg0.u3.node
|
rp ($arg0).u3.node
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_1st
|
define nd_1st
|
||||||
printf "u1.node: "
|
printf "u1.node: "
|
||||||
rp $arg0.u1.node
|
rp ($arg0).u1.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_2nd
|
define nd_2nd
|
||||||
printf "u2.node: "
|
printf "u2.node: "
|
||||||
rp $arg0.u2.node
|
rp ($arg0).u2.node
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_stts
|
define nd_stts
|
||||||
printf "u1.node: "
|
printf "u1.node: "
|
||||||
rp $arg0.u1.node
|
rp ($arg0).u1.node
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_entry
|
define nd_entry
|
||||||
printf "u3.entry: "
|
printf "u3.entry: "
|
||||||
p $arg0.u3.entry
|
p ($arg0).u3.entry
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_vid
|
define nd_vid
|
||||||
printf "u1.id: "
|
printf "u1.id: "
|
||||||
p $arg0.u1.id
|
p ($arg0).u1.id
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_cflag
|
define nd_cflag
|
||||||
printf "u2.id: "
|
printf "u2.id: "
|
||||||
p $arg0.u2.id
|
p ($arg0).u2.id
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_cval
|
define nd_cval
|
||||||
printf "u3.value: "
|
printf "u3.value: "
|
||||||
rp $arg0.u3.value
|
rp ($arg0).u3.value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_cnt
|
define nd_cnt
|
||||||
printf "u3.cnt: "
|
printf "u3.cnt: "
|
||||||
p $arg0.u3.cnt
|
p ($arg0).u3.cnt
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_tbl
|
define nd_tbl
|
||||||
printf "u1.tbl: "
|
printf "u1.tbl: "
|
||||||
p $arg0.u1.tbl
|
p ($arg0).u1.tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_var
|
define nd_var
|
||||||
printf "u1.node: "
|
printf "u1.node: "
|
||||||
rp $arg0.u1.node
|
rp ($arg0).u1.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_ibdy
|
define nd_ibdy
|
||||||
printf "u2.node: "
|
printf "u2.node: "
|
||||||
rp $arg0.u2.node
|
rp ($arg0).u2.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_iter
|
define nd_iter
|
||||||
printf "u3.node: "
|
printf "u3.node: "
|
||||||
rp $arg0.u3.node
|
rp ($arg0).u3.node
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_value
|
define nd_value
|
||||||
printf "u2.node: "
|
printf "u2.node: "
|
||||||
rp $arg0.u2.node
|
rp ($arg0).u2.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_aid
|
define nd_aid
|
||||||
printf "u3.id: "
|
printf "u3.id: "
|
||||||
p $arg0.u3.id
|
p ($arg0).u3.id
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_lit
|
define nd_lit
|
||||||
printf "u1.value: "
|
printf "u1.value: "
|
||||||
rp $arg0.u1.value
|
rp ($arg0).u1.value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_frml
|
define nd_frml
|
||||||
printf "u1.node: "
|
printf "u1.node: "
|
||||||
rp $arg0.u1.node
|
rp ($arg0).u1.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_rest
|
define nd_rest
|
||||||
printf "u2.argc: "
|
printf "u2.argc: "
|
||||||
p $arg0.u2.argc
|
p ($arg0).u2.argc
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_opt
|
define nd_opt
|
||||||
printf "u1.node: "
|
printf "u1.node: "
|
||||||
rp $arg0.u1.node
|
rp ($arg0).u1.node
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_recv
|
define nd_recv
|
||||||
printf "u1.node: "
|
printf "u1.node: "
|
||||||
rp $arg0.u1.node
|
rp ($arg0).u1.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_mid
|
define nd_mid
|
||||||
printf "u2.id: "
|
printf "u2.id: "
|
||||||
p $arg0.u2.id
|
p ($arg0).u2.id
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_args
|
define nd_args
|
||||||
printf "u3.node: "
|
printf "u3.node: "
|
||||||
rp $arg0.u3.node
|
rp ($arg0).u3.node
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_noex
|
define nd_noex
|
||||||
printf "u1.id: "
|
printf "u1.id: "
|
||||||
p $arg0.u1.id
|
p ($arg0).u1.id
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_defn
|
define nd_defn
|
||||||
printf "u3.node: "
|
printf "u3.node: "
|
||||||
rp $arg0.u3.node
|
rp ($arg0).u3.node
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_old
|
define nd_old
|
||||||
printf "u1.id: "
|
printf "u1.id: "
|
||||||
p $arg0.u1.id
|
p ($arg0).u1.id
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_new
|
define nd_new
|
||||||
printf "u2.id: "
|
printf "u2.id: "
|
||||||
p $arg0.u2.id
|
p ($arg0).u2.id
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_cfnc
|
define nd_cfnc
|
||||||
printf "u1.cfunc: "
|
printf "u1.cfunc: "
|
||||||
p $arg0.u1.cfunc
|
p ($arg0).u1.cfunc
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_argc
|
define nd_argc
|
||||||
printf "u2.argc: "
|
printf "u2.argc: "
|
||||||
p $arg0.u2.argc
|
p ($arg0).u2.argc
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_cname
|
define nd_cname
|
||||||
printf "u1.id: "
|
printf "u1.id: "
|
||||||
p $arg0.u1.id
|
p ($arg0).u1.id
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_super
|
define nd_super
|
||||||
printf "u3.node: "
|
printf "u3.node: "
|
||||||
rp $arg0.u3.node
|
rp ($arg0).u3.node
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_modl
|
define nd_modl
|
||||||
printf "u1.id: "
|
printf "u1.id: "
|
||||||
p $arg0.u1.id
|
p ($arg0).u1.id
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_clss
|
define nd_clss
|
||||||
printf "u1.value: "
|
printf "u1.value: "
|
||||||
rp $arg0.u1.value
|
rp ($arg0).u1.value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_beg
|
define nd_beg
|
||||||
printf "u1.node: "
|
printf "u1.node: "
|
||||||
rp $arg0.u1.node
|
rp ($arg0).u1.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_end
|
define nd_end
|
||||||
printf "u2.node: "
|
printf "u2.node: "
|
||||||
rp $arg0.u2.node
|
rp ($arg0).u2.node
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_state
|
define nd_state
|
||||||
printf "u3.state: "
|
printf "u3.state: "
|
||||||
p $arg0.u3.state
|
p ($arg0).u3.state
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_rval
|
define nd_rval
|
||||||
printf "u2.value: "
|
printf "u2.value: "
|
||||||
rp $arg0.u2.value
|
rp ($arg0).u2.value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_nth
|
define nd_nth
|
||||||
printf "u2.argc: "
|
printf "u2.argc: "
|
||||||
p $arg0.u2.argc
|
p ($arg0).u2.argc
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
define nd_tag
|
define nd_tag
|
||||||
printf "u1.id: "
|
printf "u1.id: "
|
||||||
p $arg0.u1.id
|
p ($arg0).u1.id
|
||||||
end
|
end
|
||||||
|
|
||||||
define nd_tval
|
define nd_tval
|
||||||
printf "u2.value: "
|
printf "u2.value: "
|
||||||
rp $arg0.u2.value
|
rp ($arg0).u2.value
|
||||||
end
|
end
|
||||||
|
|
||||||
define rb_p
|
define rb_p
|
||||||
|
@ -550,7 +619,7 @@ end
|
||||||
define rb_classname
|
define rb_classname
|
||||||
call classname($arg0)
|
call classname($arg0)
|
||||||
rb_p $
|
rb_p $
|
||||||
print *(struct RClass*)$arg0
|
print *(struct RClass*)($arg0)
|
||||||
end
|
end
|
||||||
|
|
||||||
define rb_backtrace
|
define rb_backtrace
|
||||||
|
@ -558,25 +627,25 @@ define rb_backtrace
|
||||||
end
|
end
|
||||||
|
|
||||||
define iseq
|
define iseq
|
||||||
if $arg0->type == ISEQ_ELEMENT_NONE
|
if ($arg0)->type == ISEQ_ELEMENT_NONE
|
||||||
echo [none]\n
|
echo [none]\n
|
||||||
end
|
end
|
||||||
if $arg0->type == ISEQ_ELEMENT_LABEL
|
if ($arg0)->type == ISEQ_ELEMENT_LABEL
|
||||||
print *(LABEL*)$arg0
|
print *(LABEL*)($arg0)
|
||||||
end
|
end
|
||||||
if $arg0->type == ISEQ_ELEMENT_INSN
|
if ($arg0)->type == ISEQ_ELEMENT_INSN
|
||||||
print *(INSN*)$arg0
|
print *(INSN*)($arg0)
|
||||||
if ((INSN*)$arg0)->insn_id != YARVINSN_jump
|
if ((INSN*)($arg0))->insn_id != YARVINSN_jump
|
||||||
set $i = 0
|
set $i = 0
|
||||||
set $operand_size = ((INSN*)$arg0)->operand_size
|
set $operand_size = ((INSN*)($arg0))->operand_size
|
||||||
set $operands = ((INSN*)$arg0)->operands
|
set $operands = ((INSN*)($arg0))->operands
|
||||||
while $i < $operand_size
|
while $i < $operand_size
|
||||||
rp $operands[$i++]
|
rp $operands[$i++]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if $arg0->type == ISEQ_ELEMENT_ADJUST
|
if ($arg0)->type == ISEQ_ELEMENT_ADJUST
|
||||||
print *(ADJUST*)$arg0
|
print *(ADJUST*)($arg0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
Thu May 21 22:17:52 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* template/id.h.tmpl, id.h (enum ruby_method_ids): added some IDs.
|
||||||
|
|
||||||
|
* debug.c (dummy_gdb_enums): added enum ruby_method_ids.
|
||||||
|
|
||||||
|
* .gdbinit (rp): improved output of Symbol.
|
||||||
|
|
||||||
Thu May 21 21:07:22 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Thu May 21 21:07:22 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* missing/vsnprintf.c (BSD_vfprintf): support for 'z' modifier.
|
* missing/vsnprintf.c (BSD_vfprintf): support for 'z' modifier.
|
||||||
|
|
4
debug.c
4
debug.c
|
@ -15,6 +15,7 @@
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "eval_intern.h"
|
#include "eval_intern.h"
|
||||||
#include "vm_core.h"
|
#include "vm_core.h"
|
||||||
|
#include "id.h"
|
||||||
|
|
||||||
/* for gdb */
|
/* for gdb */
|
||||||
static const union {
|
static const union {
|
||||||
|
@ -22,6 +23,7 @@ static const union {
|
||||||
enum ruby_value_type value_type;
|
enum ruby_value_type value_type;
|
||||||
enum ruby_tag_type tag_type;
|
enum ruby_tag_type tag_type;
|
||||||
enum node_type node_type;
|
enum node_type node_type;
|
||||||
|
enum ruby_method_ids method_ids;
|
||||||
enum {
|
enum {
|
||||||
RUBY_ENCODING_INLINE_MAX = ENCODING_INLINE_MAX,
|
RUBY_ENCODING_INLINE_MAX = ENCODING_INLINE_MAX,
|
||||||
RUBY_ENCODING_SHIFT = ENCODING_SHIFT,
|
RUBY_ENCODING_SHIFT = ENCODING_SHIFT,
|
||||||
|
@ -96,7 +98,7 @@ ruby_debug_print_value(int level, int debug_level, const char *header, VALUE obj
|
||||||
VALUE str;
|
VALUE str;
|
||||||
str = rb_inspect(obj);
|
str = rb_inspect(obj);
|
||||||
fprintf(stderr, "DBG> %s: %s\n", header,
|
fprintf(stderr, "DBG> %s: %s\n", header,
|
||||||
obj == -1 ? "" : StringValueCStr(str));
|
obj == (VALUE)(SIGNED_VALUE)-1 ? "" : StringValueCStr(str));
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
}
|
}
|
||||||
return obj;
|
return obj;
|
||||||
|
|
7
id.h
7
id.h
|
@ -70,6 +70,12 @@ enum ruby_method_ids {
|
||||||
id_core_set_postexe = 375,
|
id_core_set_postexe = 375,
|
||||||
tLAST_TOKEN = 376,
|
tLAST_TOKEN = 376,
|
||||||
#endif
|
#endif
|
||||||
|
idDot2 = tDOT2,
|
||||||
|
idDot3 = tDOT3,
|
||||||
|
idUPlus = tUPLUS,
|
||||||
|
idUMinus = tUMINUS,
|
||||||
|
idPow = tPOW,
|
||||||
|
idCmp = tCMP,
|
||||||
idPLUS = '+',
|
idPLUS = '+',
|
||||||
idMINUS = '-',
|
idMINUS = '-',
|
||||||
idMULT = '*',
|
idMULT = '*',
|
||||||
|
@ -86,6 +92,7 @@ enum ruby_method_ids {
|
||||||
idNot = '!',
|
idNot = '!',
|
||||||
idBackquote = '`',
|
idBackquote = '`',
|
||||||
idEqTilde = tMATCH,
|
idEqTilde = tMATCH,
|
||||||
|
idNeqTilde = tNMATCH,
|
||||||
idAREF = tAREF,
|
idAREF = tAREF,
|
||||||
idASET = tASET,
|
idASET = tASET,
|
||||||
idLAST_TOKEN = tLAST_TOKEN >> ID_SCOPE_SHIFT,
|
idLAST_TOKEN = tLAST_TOKEN >> ID_SCOPE_SHIFT,
|
||||||
|
|
|
@ -63,6 +63,12 @@ enum ruby_method_ids {
|
||||||
<%=token%> = <%=value%>,
|
<%=token%> = <%=value%>,
|
||||||
% end
|
% end
|
||||||
#endif
|
#endif
|
||||||
|
idDot2 = tDOT2,
|
||||||
|
idDot3 = tDOT3,
|
||||||
|
idUPlus = tUPLUS,
|
||||||
|
idUMinus = tUMINUS,
|
||||||
|
idPow = tPOW,
|
||||||
|
idCmp = tCMP,
|
||||||
idPLUS = '+',
|
idPLUS = '+',
|
||||||
idMINUS = '-',
|
idMINUS = '-',
|
||||||
idMULT = '*',
|
idMULT = '*',
|
||||||
|
@ -79,6 +85,7 @@ enum ruby_method_ids {
|
||||||
idNot = '!',
|
idNot = '!',
|
||||||
idBackquote = '`',
|
idBackquote = '`',
|
||||||
idEqTilde = tMATCH,
|
idEqTilde = tMATCH,
|
||||||
|
idNeqTilde = tNMATCH,
|
||||||
idAREF = tAREF,
|
idAREF = tAREF,
|
||||||
idASET = tASET,
|
idASET = tASET,
|
||||||
idLAST_TOKEN = tLAST_TOKEN >> ID_SCOPE_SHIFT,
|
idLAST_TOKEN = tLAST_TOKEN >> ID_SCOPE_SHIFT,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue