mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	.gdbinit: show ID type
* .gdbinit (rp_id): show ID type. * template/id.h.tmpl (ruby_id_types): make enum for debugger. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									a9534d1b48
								
							
						
					
					
						commit
						aee98a1c2b
					
				
					 3 changed files with 54 additions and 10 deletions
				
			
		
							
								
								
									
										30
									
								
								.gdbinit
									
										
									
									
									
								
							
							
						
						
									
										30
									
								
								.gdbinit
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -316,6 +316,36 @@ define rp_id
 | 
			
		|||
  if $id == idASET
 | 
			
		||||
    printf "(:[]=)\n"
 | 
			
		||||
  else
 | 
			
		||||
    if $id <= tLAST_OP_ID
 | 
			
		||||
      printf "O"
 | 
			
		||||
    else
 | 
			
		||||
      set $id_type = $id & RUBY_ID_SCOPE_MASK
 | 
			
		||||
      if $id_type == RUBY_ID_LOCAL
 | 
			
		||||
        printf "l"
 | 
			
		||||
      else
 | 
			
		||||
      if $id_type == RUBY_ID_INSTANCE
 | 
			
		||||
        printf "i"
 | 
			
		||||
      else
 | 
			
		||||
      if $id_type == RUBY_ID_GLOBAL
 | 
			
		||||
        printf "G"
 | 
			
		||||
      else
 | 
			
		||||
      if $id_type == RUBY_ID_ATTRSET
 | 
			
		||||
        printf "a"
 | 
			
		||||
      else
 | 
			
		||||
      if $id_type == RUBY_ID_CONST
 | 
			
		||||
        printf "C"
 | 
			
		||||
      else
 | 
			
		||||
      if $id_type == RUBY_ID_CLASS
 | 
			
		||||
        printf "c"
 | 
			
		||||
      else
 | 
			
		||||
        printf "j"
 | 
			
		||||
      end
 | 
			
		||||
      end
 | 
			
		||||
      end
 | 
			
		||||
      end
 | 
			
		||||
      end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
    printf "(%ld): ", $id
 | 
			
		||||
    rb_numtable_entry global_symbols.id_str $id
 | 
			
		||||
    if $rb_numtable_rec
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								debug.c
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								debug.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -24,6 +24,7 @@ const union {
 | 
			
		|||
    enum ruby_tag_type          tag_type;
 | 
			
		||||
    enum node_type              node_type;
 | 
			
		||||
    enum ruby_method_ids        method_ids;
 | 
			
		||||
    enum ruby_id_types          id_types;
 | 
			
		||||
    enum {
 | 
			
		||||
        RUBY_ENCODING_INLINE_MAX = ENCODING_INLINE_MAX,
 | 
			
		||||
        RUBY_ENCODING_SHIFT = ENCODING_SHIFT,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,16 +28,29 @@ types = ids.keys.grep(/^[A-Z]/)
 | 
			
		|||
#ifndef RUBY_ID_H
 | 
			
		||||
#define RUBY_ID_H
 | 
			
		||||
 | 
			
		||||
#define ID_SCOPE_SHIFT 3
 | 
			
		||||
#define ID_SCOPE_MASK 0x07
 | 
			
		||||
#define ID_LOCAL      0x00
 | 
			
		||||
#define ID_INSTANCE   0x01
 | 
			
		||||
#define ID_GLOBAL     0x03
 | 
			
		||||
#define ID_ATTRSET    0x04
 | 
			
		||||
#define ID_CONST      0x05
 | 
			
		||||
#define ID_CLASS      0x06
 | 
			
		||||
#define ID_JUNK       0x07
 | 
			
		||||
#define ID_INTERNAL   ID_JUNK
 | 
			
		||||
enum ruby_id_types {
 | 
			
		||||
    RUBY_ID_LOCAL       = 0x00,
 | 
			
		||||
    RUBY_ID_INSTANCE    = 0x01,
 | 
			
		||||
    RUBY_ID_GLOBAL      = 0x03,
 | 
			
		||||
    RUBY_ID_ATTRSET     = 0x04,
 | 
			
		||||
    RUBY_ID_CONST       = 0x05,
 | 
			
		||||
    RUBY_ID_CLASS       = 0x06,
 | 
			
		||||
    RUBY_ID_JUNK        = 0x07,
 | 
			
		||||
    RUBY_ID_INTERNAL    = RUBY_ID_JUNK,
 | 
			
		||||
    RUBY_ID_SCOPE_SHIFT = 3,
 | 
			
		||||
    RUBY_ID_SCOPE_MASK  = ~(~0U<<RUBY_ID_SCOPE_SHIFT)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define ID_SCOPE_SHIFT RUBY_ID_SCOPE_SHIFT
 | 
			
		||||
#define ID_SCOPE_MASK  RUBY_ID_SCOPE_MASK
 | 
			
		||||
#define ID_LOCAL       RUBY_ID_LOCAL
 | 
			
		||||
#define ID_INSTANCE    RUBY_ID_INSTANCE
 | 
			
		||||
#define ID_GLOBAL      RUBY_ID_GLOBAL
 | 
			
		||||
#define ID_ATTRSET     RUBY_ID_ATTRSET
 | 
			
		||||
#define ID_CONST       RUBY_ID_CONST
 | 
			
		||||
#define ID_CLASS       RUBY_ID_CLASS
 | 
			
		||||
#define ID_JUNK        RUBY_ID_JUNK
 | 
			
		||||
#define ID_INTERNAL    RUBY_ID_INTERNAL
 | 
			
		||||
 | 
			
		||||
#define ID2ATTRSET(id) (((id)&~ID_SCOPE_MASK)|ID_ATTRSET)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue