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