# Consts for gdb support

**URL:** <https://www.ruby-forum.com/t/consts-for-gdb-support/107905>\
**Category:** Development\
**Created:** [June 27, 2007, 9:31am UTC](https://www.ruby-forum.com/t/consts-for-gdb-support/107905 "2007-06-27T09:31:25Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [June 27, 2007, 9:31am UTC](https://www.ruby-forum.com/t/consts-for-gdb-support/107905/1 "2007-06-27T09:31:25Z")

</div>

e$B$J$+$@$G$9!#e(B

e$B%W%j%W%m%;%C%5$N%^%/%m$Oe(B-g3e$B$r$D$1$J$$$He(Bgdbe$B$+$i8+$($J$$$N$G!“e(B  
enume$B$GDj5A$9$k$H$$$&$N$O$I$&$G$7$g$&$+!#0JA0;n$7$?$3$H$,$”$C$?e(B  
e$B$N$G$9$,!"$I$&$d$ie(B(e$BEDCf$5$s$K$h$k$He(B)e$B!VJQ?t$rDj5A$7$F$\*$/!W$H$$e(B  
e$B$&$N$,80$N$h$&$G$9!#e(B

# Index: include/ruby/node.h

— include/ruby/node.h (revision 12632)  
+++ include/ruby/node.h (working copy)  
@@ -23,114 +23,225 @@ extern “C” {  
enum node\_type {  
NODE\_METHOD,  
+#define NODE\_METHOD NODE\_METHOD  
NODE\_FBODY,  
+#define NODE\_FBODY NODE\_FBODY  
NODE\_CFUNC,  
+#define NODE\_CFUNC NODE\_CFUNC  
NODE\_SCOPE,  
+#define NODE\_SCOPE NODE\_SCOPE  
NODE\_BLOCK,  
+#define NODE\_BLOCK NODE\_BLOCK  
NODE\_IF,  
+#define NODE\_IF NODE\_IF  
NODE\_CASE,  
+#define NODE\_CASE NODE\_CASE  
NODE\_WHEN,  
+#define NODE\_WHEN NODE\_WHEN  
NODE\_OPT\_N,  
+#define NODE\_OPT\_N NODE\_OPT\_N  
NODE\_WHILE,  
+#define NODE\_WHILE NODE\_WHILE  
NODE\_UNTIL,  
+#define NODE\_UNTIL NODE\_UNTIL  
NODE\_ITER,  
+#define NODE\_ITER NODE\_ITER  
NODE\_FOR,  
+#define NODE\_FOR NODE\_FOR  
NODE\_BREAK,  
+#define NODE\_BREAK NODE\_BREAK  
NODE\_NEXT,  
+#define NODE\_NEXT NODE\_NEXT  
NODE\_REDO,  
+#define NODE\_REDO NODE\_REDO  
NODE\_RETRY,  
+#define NODE\_RETRY NODE\_RETRY  
NODE\_BEGIN,  
+#define NODE\_BEGIN NODE\_BEGIN  
NODE\_RESCUE,  
+#define NODE\_RESCUE NODE\_RESCUE  
NODE\_RESBODY,  
+#define NODE\_RESBODY NODE\_RESBODY  
NODE\_ENSURE,  
+#define NODE\_ENSURE NODE\_ENSURE  
NODE\_AND,  
+#define NODE\_AND NODE\_AND  
NODE\_OR,  
+#define NODE\_OR NODE\_OR  
NODE\_NOT,  
+#define NODE\_NOT NODE\_NOT  
NODE\_MASGN,  
+#define NODE\_MASGN NODE\_MASGN  
NODE\_LASGN,  
+#define NODE\_LASGN NODE\_LASGN  
NODE\_DASGN,  
+#define NODE\_DASGN NODE\_DASGN  
NODE\_DASGN\_CURR,  
+#define NODE\_DASGN\_CURR NODE\_DASGN\_CURR  
NODE\_GASGN,  
+#define NODE\_GASGN NODE\_GASGN  
NODE\_IASGN,  
+#define NODE\_IASGN NODE\_IASGN  
NODE\_IASGN2,  
+#define NODE\_IASGN2 NODE\_IASGN2  
NODE\_CDECL,  
+#define NODE\_CDECL NODE\_CDECL  
NODE\_CVASGN,  
+#define NODE\_CVASGN NODE\_CVASGN  
NODE\_CVDECL,  
+#define NODE\_CVDECL NODE\_CVDECL  
NODE\_OP\_ASGN1,  
+#define NODE\_OP\_ASGN1 NODE\_OP\_ASGN1  
NODE\_OP\_ASGN2,  
+#define NODE\_OP\_ASGN2 NODE\_OP\_ASGN2  
NODE\_OP\_ASGN\_AND,  
+#define NODE\_OP\_ASGN\_AND NODE\_OP\_ASGN\_AND  
NODE\_OP\_ASGN\_OR,  
+#define NODE\_OP\_ASGN\_OR NODE\_OP\_ASGN\_OR  
NODE\_CALL,  
+#define NODE\_CALL NODE\_CALL  
NODE\_FCALL,  
+#define NODE\_FCALL NODE\_FCALL  
NODE\_VCALL,  
+#define NODE\_VCALL NODE\_VCALL  
NODE\_SUPER,  
+#define NODE\_SUPER NODE\_SUPER  
NODE\_ZSUPER,  
+#define NODE\_ZSUPER NODE\_ZSUPER  
NODE\_ARRAY,  
+#define NODE\_ARRAY NODE\_ARRAY  
NODE\_ZARRAY,  
+#define NODE\_ZARRAY NODE\_ZARRAY  
NODE\_VALUES,  
+#define NODE\_VALUES NODE\_VALUES  
NODE\_HASH,  
+#define NODE\_HASH NODE\_HASH  
NODE\_RETURN,  
+#define NODE\_RETURN NODE\_RETURN  
NODE\_YIELD,  
+#define NODE\_YIELD NODE\_YIELD  
NODE\_LVAR,  
+#define NODE\_LVAR NODE\_LVAR  
NODE\_DVAR,  
+#define NODE\_DVAR NODE\_DVAR  
NODE\_GVAR,  
+#define NODE\_GVAR NODE\_GVAR  
NODE\_IVAR,  
+#define NODE\_IVAR NODE\_IVAR  
NODE\_CONST,  
+#define NODE\_CONST NODE\_CONST  
NODE\_CVAR,  
+#define NODE\_CVAR NODE\_CVAR  
NODE\_NTH\_REF,  
+#define NODE\_NTH\_REF NODE\_NTH\_REF  
NODE\_BACK\_REF,  
+#define NODE\_BACK\_REF NODE\_BACK\_REF  
NODE\_MATCH,  
+#define NODE\_MATCH NODE\_MATCH  
NODE\_MATCH2,  
+#define NODE\_MATCH2 NODE\_MATCH2  
NODE\_MATCH3,  
+#define NODE\_MATCH3 NODE\_MATCH3  
NODE\_LIT,  
+#define NODE\_LIT NODE\_LIT  
NODE\_STR,  
+#define NODE\_STR NODE\_STR  
NODE\_DSTR,  
+#define NODE\_DSTR NODE\_DSTR  
NODE\_XSTR,  
+#define NODE\_XSTR NODE\_XSTR  
NODE\_DXSTR,  
+#define NODE\_DXSTR NODE\_DXSTR  
NODE\_EVSTR,  
+#define NODE\_EVSTR NODE\_EVSTR  
NODE\_DREGX,  
+#define NODE\_DREGX NODE\_DREGX  
NODE\_DREGX\_ONCE,  
+#define NODE\_DREGX\_ONCE NODE\_DREGX\_ONCE  
NODE\_ARGS,  
+#define NODE\_ARGS NODE\_ARGS  
NODE\_ARGS\_AUX,  
+#define NODE\_ARGS\_AUX NODE\_ARGS\_AUX  
NODE\_OPT\_ARG,  
+#define NODE\_OPT\_ARG NODE\_OPT\_ARG  
NODE\_POSTARG,  
+#define NODE\_POSTARG NODE\_POSTARG  
NODE\_ARGSCAT,  
+#define NODE\_ARGSCAT NODE\_ARGSCAT  
NODE\_ARGSPUSH,  
+#define NODE\_ARGSPUSH NODE\_ARGSPUSH  
NODE\_SPLAT,  
+#define NODE\_SPLAT NODE\_SPLAT  
NODE\_TO\_ARY,  
+#define NODE\_TO\_ARY NODE\_TO\_ARY  
NODE\_BLOCK\_ARG,  
+#define NODE\_BLOCK\_ARG NODE\_BLOCK\_ARG  
NODE\_BLOCK\_PASS,  
+#define NODE\_BLOCK\_PASS NODE\_BLOCK\_PASS  
NODE\_DEFN,  
+#define NODE\_DEFN NODE\_DEFN  
NODE\_DEFS,  
+#define NODE\_DEFS NODE\_DEFS  
NODE\_ALIAS,  
+#define NODE\_ALIAS NODE\_ALIAS  
NODE\_VALIAS,  
+#define NODE\_VALIAS NODE\_VALIAS  
NODE\_UNDEF,  
+#define NODE\_UNDEF NODE\_UNDEF  
NODE\_CLASS,  
+#define NODE\_CLASS NODE\_CLASS  
NODE\_MODULE,  
+#define NODE\_MODULE NODE\_MODULE  
NODE\_SCLASS,  
+#define NODE\_SCLASS NODE\_SCLASS  
NODE\_COLON2,  
+#define NODE\_COLON2 NODE\_COLON2  
NODE\_COLON3,  
+#define NODE\_COLON3 NODE\_COLON3  
NODE\_CREF,  
+#define NODE\_CREF NODE\_CREF  
NODE\_DOT2,  
+#define NODE\_DOT2 NODE\_DOT2  
NODE\_DOT3,  
+#define NODE\_DOT3 NODE\_DOT3  
NODE\_FLIP2,  
+#define NODE\_FLIP2 NODE\_FLIP2  
NODE\_FLIP3,  
+#define NODE\_FLIP3 NODE\_FLIP3  
NODE\_ATTRSET,  
+#define NODE\_ATTRSET NODE\_ATTRSET  
NODE\_SELF,  
+#define NODE\_SELF NODE\_SELF  
NODE\_NIL,  
+#define NODE\_NIL NODE\_NIL  
NODE\_TRUE,  
+#define NODE\_TRUE NODE\_TRUE  
NODE\_FALSE,  
+#define NODE\_FALSE NODE\_FALSE  
NODE\_ERRINFO,  
+#define NODE\_ERRINFO NODE\_ERRINFO  
NODE\_DEFINED,  
+#define NODE\_DEFINED NODE\_DEFINED  
NODE\_POSTEXE,  
+#define NODE\_POSTEXE NODE\_POSTEXE  
NODE\_ALLOCA,  
+#define NODE\_ALLOCA NODE\_ALLOCA  
NODE\_BMETHOD,  
+#define NODE\_BMETHOD NODE\_BMETHOD  
NODE\_MEMO,  
+#define NODE\_MEMO NODE\_MEMO  
NODE\_IFUNC,  
+#define NODE\_IFUNC NODE\_IFUNC  
NODE\_DSYM,  
+#define NODE\_DSYM NODE\_DSYM  
NODE\_ATTRASGN,  
+#define NODE\_ATTRASGN NODE\_ATTRASGN  
NODE\_PRELUDE,  
+#define NODE\_PRELUDE NODE\_PRELUDE  
NODE\_LAMBDA,  
+#define NODE\_LAMBDA NODE\_LAMBDA  
NODE\_OPTBLOCK,  
+#define NODE\_OPTBLOCK NODE\_OPTBLOCK  
NODE\_LAST  
+#define NODE\_LAST NODE\_LAST  
};

@@ -163,9 +274,19 @@ typedef struct RNode {  
#define RNODE(obj) (R\_CAST(RNode)(obj))

-/\* 0…4:T\_TYPES, 5:FL\_MARK, 6:reserved, 7:NODE\_NEWLINE \*/  
-#define NODE\_NEWLINE (1\<\<7)

-#define NODE\_TYPESHIFT 8  
-#define NODE\_TYPEMASK (0x7f\<\<NODE\_TYPESHIFT)  
+/\* 0…4:T\_TYPES, 5:FL\_MARK, 6:reserved, 7:NODE\_NEWLINE \*/  
+enum ruby\_node\_flags {

- NODE\_NEWLINE = (1\<\<7),  
+#define NODE\_NEWLINE NODE\_NEWLINE
- 
- NODE\_TYPESHIFT = 8,  
+#define NODE\_TYPESHIFT NODE\_TYPESHIFT
- NODE\_TYPEMASK = (0x7f\<\<NODE\_TYPESHIFT),  
+#define NODE\_TYPEMASK NODE\_TYPEMASK
- NODE\_LSHIFT = (NODE\_TYPESHIFT+7),  
+#define NODE\_LSHIFT NODE\_LSHIFT
- NODE\_LMASK =  
(((SIGNED\_VALUE)1\<\<(sizeof(VALUE)\*CHAR\_BIT-NODE\_LSHIFT))-1),  
+#define NODE\_LMASK NODE\_LMASK  
+};

#define nd\_type(n) ((int) (((RNODE(n))-\>flags &  
NODE\_TYPEMASK)\>\>NODE\_TYPESHIFT))  
@@ -173,6 +294,4 @@ typedef struct RNode {  
RNODE(n)-\>flags=((RNODE(n)-\>flags&~NODE\_TYPEMASK)|(((t)\<\<NODE\_TYPESHIFT)&NODE\_TYPEMASK))

# -#define NODE\_LSHIFT (NODE\_TYPESHIFT+7) -#define NODE\_LMASK (((SIGNED\_VALUE)1\<\<(sizeof(NODE\*)\*CHAR\_BIT-NODE\_LSHIFT))-1) #define nd\_line(n) ((VALUE)(((RNODE(n))-\>flags\>\>NODE\_LSHIFT)&NODE\_LMASK)) #define nd\_set\_line(n,l) Index: include/ruby/ruby.h

— include/ruby/ruby.h (revision 12632)  
+++ include/ruby/ruby.h (working copy)  
@@ -155,5 +155,4 @@ typedef unsigned LONG\_LONG ID;  
#define FIXNUM\_MIN RSHIFT((long)LONG\_MIN,1)

-#define FIXNUM\_FLAG 0x01  
#define INT2FIX(i) ((VALUE)(((SIGNED\_VALUE)(i))\<\<1 | FIXNUM\_FLAG))  
#define LONG2FIX(i) INT2FIX(i)  
@@ -209,8 +208,6 @@ VALUE rb\_ull2inum(unsigned LONG\_LONG);  
#define FIXABLE(f) (POSFIXABLE(f) && NEGFIXABLE(f))

-#define IMMEDIATE\_MASK 0x03  
#define IMMEDIATE\_P(x) ((VALUE)(x) & IMMEDIATE\_MASK)

-#define SYMBOL\_FLAG 0x0e  
#define SYMBOL\_P(x) (((VALUE)(x)&0xff)==SYMBOL\_FLAG)  
#define ID2SYM(x) ((VALUE)(((long)(x))\<\<8|SYMBOL\_FLAG))  
@@ -218,8 +215,22 @@ VALUE rb\_ull2inum(unsigned LONG\_LONG);

/\* special contants - i.e. non-zero and non-fixnum constants _/  
-#define Qfalse ((VALUE)0)  
-#define Qtrue ((VALUE)2)  
-#define Qnil ((VALUE)4)  
-#define Qundef ((VALUE)6) /_ undefined value for placeholder \*/  
+enum ruby\_special\_consts {

- RUBY\_Qfalse = 0,
- RUBY\_Qtrue = 2,
- RUBY\_Qnil = 4,
- RUBY\_Qundef = 6,
- 
- RUBY\_IMMEDIATE\_MASK = 0x03,
- RUBY\_FIXNUM\_FLAG = 0x01,
- RUBY\_SYMBOL\_FLAG = 0x0e,  
+};
- 

+#define Qfalse ((VALUE)RUBY\_Qfalse)  
+#define Qtrue ((VALUE)RUBY\_Qtrue)  
+#define Qnil ((VALUE)RUBY\_Qnil)  
+#define Qundef ((VALUE)RUBY\_Qundef) /\* undefined value for placeholder  
\*/  
+#define IMMEDIATE\_MASK RUBY\_IMMEDIATE\_MASK  
+#define FIXNUM\_FLAG RUBY\_FIXNUM\_FLAG  
+#define SYMBOL\_FLAG RUBY\_SYMBOL\_FLAG

#define RTEST(v) (((VALUE)(v) & ~Qnil) != 0)  
@@ -228,33 +239,60 @@ VALUE rb\_ull2inum(unsigned LONG\_LONG);  
#define CLASS\_OF(v) rb\_class\_of((VALUE)(v))

-#define T\_NONE 0x00  
+enum ruby\_value\_type {

- RUBY\_T\_NONE = 0x00,  
+#define T\_NONE RUBY\_T\_NONE
- 
- RUBY\_T\_NIL = 0x01,  
+#define T\_NIL RUBY\_T\_NIL
- RUBY\_T\_OBJECT = 0x02,  
+#define T\_OBJECT RUBY\_T\_OBJECT
- RUBY\_T\_CLASS = 0x03,  
+#define T\_CLASS RUBY\_T\_CLASS
- RUBY\_T\_ICLASS = 0x04,  
+#define T\_ICLASS RUBY\_T\_ICLASS
- RUBY\_T\_MODULE = 0x05,  
+#define T\_MODULE RUBY\_T\_MODULE
- RUBY\_T\_FLOAT = 0x06,  
+#define T\_FLOAT RUBY\_T\_FLOAT
- RUBY\_T\_STRING = 0x07,  
+#define T\_STRING RUBY\_T\_STRING
- RUBY\_T\_REGEXP = 0x08,  
+#define T\_REGEXP RUBY\_T\_REGEXP
- RUBY\_T\_ARRAY = 0x09,  
+#define T\_ARRAY RUBY\_T\_ARRAY
- RUBY\_T\_FIXNUM = 0x0a,  
+#define T\_FIXNUM RUBY\_T\_FIXNUM
- RUBY\_T\_HASH = 0x0b,  
+#define T\_HASH RUBY\_T\_HASH
- RUBY\_T\_STRUCT = 0x0c,  
+#define T\_STRUCT RUBY\_T\_STRUCT
- RUBY\_T\_BIGNUM = 0x0d,  
+#define T\_BIGNUM RUBY\_T\_BIGNUM
- RUBY\_T\_FILE = 0x0e,  
+#define T\_FILE RUBY\_T\_FILE
- 
- RUBY\_T\_TRUE = 0x10,  
+#define T\_TRUE RUBY\_T\_TRUE
- RUBY\_T\_FALSE = 0x11,  
+#define T\_FALSE RUBY\_T\_FALSE
- RUBY\_T\_DATA = 0x12,  
+#define T\_DATA RUBY\_T\_DATA
- RUBY\_T\_MATCH = 0x13,  
+#define T\_MATCH RUBY\_T\_MATCH
- RUBY\_T\_SYMBOL = 0x14,  
+#define T\_SYMBOL RUBY\_T\_SYMBOL
- 
- RUBY\_T\_VALUES = 0x1a,  
+#define T\_VALUES RUBY\_T\_VALUES
- RUBY\_T\_BLOCK = 0x1b,  
+#define T\_BLOCK RUBY\_T\_BLOCK
- RUBY\_T\_UNDEF = 0x1c,  
+#define T\_UNDEF RUBY\_T\_UNDEF
- RUBY\_T\_NODE = 0x1f,  
+#define T\_NODE RUBY\_T\_NODE

## -#define T\_NIL 0x01 -#define T\_OBJECT 0x02 -#define T\_CLASS 0x03 -#define T\_ICLASS 0x04 -#define T\_MODULE 0x05 -#define T\_FLOAT 0x06 -#define T\_STRING 0x07 -#define T\_REGEXP 0x08 -#define T\_ARRAY 0x09 -#define T\_FIXNUM 0x0a -#define T\_HASH 0x0b -#define T\_STRUCT 0x0c -#define T\_BIGNUM 0x0d -#define T\_FILE 0x0e

## -#define T\_TRUE 0x10 -#define T\_FALSE 0x11 -#define T\_DATA 0x12 -#define T\_MATCH 0x13 -#define T\_SYMBOL 0x14

## -#define T\_VALUES 0x1a -#define T\_BLOCK 0x1b -#define T\_UNDEF 0x1c -#define T\_NODE 0x1f

-#define T\_MASK 0x1f

- RUBY\_T\_MASK = 0x1f,  
+#define T\_MASK RUBY\_T\_MASK  
+};

#define BUILTIN\_TYPE(x) (((struct RBasic\*)(x))-\>flags & T\_MASK)  
@@ -523,22 +561,40 @@ struct RBignum {  
#define RVALUES(obj) (R\_CAST(RValues)(obj))

## -#define FL\_SINGLETON FL\_USER0 -#define FL\_MARK (1\<\<5) -#define FL\_RESERVED (1\<\<6) /\* will be used in the future GC \*/ -#define FL\_FINALIZE (1\<\<7) -#define FL\_TAINT (1\<\<8) -#define FL\_EXIVAR (1\<\<9) -#define FL\_FREEZE (1\<\<10)

## -#define FL\_USHIFT 11

-#define FL\_USER0 (1\<\<(FL\_USHIFT+0))  
-#define FL\_USER1 (1\<\<(FL\_USHIFT+1))  
-#define FL\_USER2 (1\<\<(FL\_USHIFT+2))  
-#define FL\_USER3 (1\<\<(FL\_USHIFT+3))  
-#define FL\_USER4 (1\<\<(FL\_USHIFT+4))  
-#define FL\_USER5 (1\<\<(FL\_USHIFT+5))  
-#define FL\_USER6 (1\<\<(FL\_USHIFT+6))  
-#define FL\_USER7 (1\<\<(FL\_USHIFT+7))  
+enum ruby\_value\_flags {

- RUBY\_FL\_MARK = (1\<\<5),  
+#define FL\_MARK RUBY\_FL\_MARK
- RUBY\_FL\_RESERVED = (1\<\<6) /\* will be used in the future GC \*/,  
+#define FL\_RESERVED RUBY\_FL\_RESERVED
- RUBY\_FL\_FINALIZE = (1\<\<7),  
+#define FL\_FINALIZE RUBY\_FL\_FINALIZE
- RUBY\_FL\_TAINT = (1\<\<8),  
+#define FL\_TAINT RUBY\_FL\_TAINT
- RUBY\_FL\_EXIVAR = (1\<\<9),  
+#define FL\_EXIVAR RUBY\_FL\_EXIVAR
- RUBY\_FL\_FREEZE = (1\<\<10),  
+#define FL\_FREEZE RUBY\_FL\_FREEZE
- RUBY\_FL\_SINGLETON = (1\<\<11),  
+#define FL\_SINGLETON RUBY\_FL\_SINGLETON
- 
- RUBY\_FL\_USHIFT = 11,  
+#define FL\_USHIFT RUBY\_FL\_USHIFT
- 
- RUBY\_FL\_USER0 = (1\<\<(FL\_USHIFT+0)),  
+#define FL\_USER0 RUBY\_FL\_USER0
- RUBY\_FL\_USER1 = (1\<\<(FL\_USHIFT+1)),  
+#define FL\_USER1 RUBY\_FL\_USER1
- RUBY\_FL\_USER2 = (1\<\<(FL\_USHIFT+2)),  
+#define FL\_USER2 RUBY\_FL\_USER2
- RUBY\_FL\_USER3 = (1\<\<(FL\_USHIFT+3)),  
+#define FL\_USER3 RUBY\_FL\_USER3
- RUBY\_FL\_USER4 = (1\<\<(FL\_USHIFT+4)),  
+#define FL\_USER4 RUBY\_FL\_USER4
- RUBY\_FL\_USER5 = (1\<\<(FL\_USHIFT+5)),  
+#define FL\_USER5 RUBY\_FL\_USER5
- RUBY\_FL\_USER6 = (1\<\<(FL\_USHIFT+6)),  
+#define FL\_USER6 RUBY\_FL\_USER6
- RUBY\_FL\_USER7 = (1\<\<(FL\_USHIFT+7)),  
+#define FL\_USER7 RUBY\_FL\_USER7  
+};

# #define SPECIAL\_CONST\_P(x) (IMMEDIATE\_P(x) || !RTEST(x)) Index: ruby.c

— ruby.c (revision 12632)  
+++ ruby.c (working copy)  
@@ -43,4 +43,13 @@  
#include “ruby/util.h”

+/\* for gdb \*/  
+static const union {

- enum ruby\_special\_consts special\_consts;
- enum ruby\_value\_type value\_type;
- enum ruby\_value\_flags value\_flags;
- enum node\_type node\_type;
- enum ruby\_node\_flags node\_flags;  
+} dummy\_gdb\_enums;
- 

#ifndef HAVE\_STDLIB\_H  
char \*getenv();

---

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [June 28, 2007, 4:41pm UTC](https://www.ruby-forum.com/t/consts-for-gdb-support/107905/2 "2007-06-28T16:41:43Z")

</div>

In article  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
Nobuyoshi N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> e$B%W%j%W%m%;%C%5$N%^%/%m$Oe(B-g3e$B$r$D$1$J$$$He(Bgdbe$B$+$i8+$($J$$$N$G!“e(B  
> enume$B$GDj5A$9$k$H$$$&$N$O$I$&$G$7$g$&$+!#0JA0;n$7$?$3$H$,$”$C$?e(B

e$B%G%P%C%0$,3Z$K$J$k$N$G!"$\<$R!#e(B

---

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [July 4, 2007, 9:31am UTC](https://www.ruby-forum.com/t/consts-for-gdb-support/107905/3 "2007-07-04T09:31:28Z")

</div>

In article  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
Nobuyoshi N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> e$B%W%j%W%m%;%C%5$N%^%/%m$Oe(B-g3e$B$r$D$1$J$$$He(Bgdbe$B$+$i8+$($J$$$N$G!“e(B  
> enume$B$GDj5A$9$k$H$$$&$N$O$I$&$G$7$g$&$+!#0JA0;n$7$?$3$H$,$”$C$?e(B

1e$B=54V$[$I7P$A$^$7$?$,H?BP$9$k$R$H$OC/$b$$$J$$$h$&$J$N$G!"F~e(B  
e$B$l$k$N$O$I$&$G$7$g$&$+!#e(B

---

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [July 5, 2007, 5:19pm UTC](https://www.ruby-forum.com/t/consts-for-gdb-support/107905/4 "2007-07-05T17:19:37Z")

</div>

In article  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
Nobuyoshi N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> e$BEDCf$5$s$,L4Km$KN)$C$F$&$C$?$($F$-$=$&$J5$$,$7$?$N$G!"F~$l$F$7e(B  
> e$B$^$$$^$7$?!#e(B

e$B$"$j$,$H$&$4$6$$$^$9!#e(B

e$B\<!$Oe(B NODE e$B$Ne(B union e$B2=$H$+$I$&$@$m$&$+e(B…

---

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [July 5, 2007, 3:45am UTC](https://www.ruby-forum.com/t/consts-for-gdb-support/107905/5 "2007-07-05T03:45:18Z")

</div>

e$B$J$+$@$G$9!#e(B

At Wed, 4 Jul 2007 16:30:35 +0900,  
Tanaka A. wrote in [ruby-dev:31133]:

> > e$B%W%j%W%m%;%C%5$N%^%/%m$Oe(B-g3e$B$r$D$1$J$$$He(Bgdbe$B$+$i8+$($J$$$N$G!“e(B  
> > enume$B$GDj5A$9$k$H$$$&$N$O$I$&$G$7$g$&$+!#0JA0;n$7$?$3$H$,$”$C$?e(B
> 
> 1e$B=54V$[$I7P$A$^$7$?$,H?BP$9$k$R$H$OC/$b$$$J$$$h$&$J$N$G!"F~e(B  
> e$B$l$k$N$O$I$&$G$7$g$&$+!#e(B

e$BEDCf$5$s$,L4Km$KN)$C$F$&$C$?$($F$-$=$&$J5$$,$7$?$N$G!"F~$l$F$7e(B  
e$B$^$$$^$7$?!#e(B
