* io.c (rb_open_file): encoding in mode string was ignored if perm is
[ruby-svn.git] / .gdbinit
blob8598cf0ab7c7da7aefe97523deac6324ec76a818
1 define rp
2   if (VALUE)$arg0 & RUBY_FIXNUM_FLAG
3     printf "FIXNUM: %ld\n", $arg0 >> 1
4   else
5   if ((VALUE)$arg0 & ~(~(VALUE)0<<RUBY_SPECIAL_SHIFT)) == RUBY_SYMBOL_FLAG
6     printf "SYMBOL(%ld)\n", $arg0 >> RUBY_SPECIAL_SHIFT
7   else
8   if $arg0 == RUBY_Qfalse
9     echo false\n
10   else
11   if $arg0 == RUBY_Qtrue
12     echo true\n
13   else
14   if $arg0 == RUBY_Qnil
15     echo nil\n
16   else
17   if $arg0 == RUBY_Qundef
18     echo undef\n
19   else
20   if (VALUE)$arg0 & RUBY_IMMEDIATE_MASK
21     echo immediate\n
22   else
23   set $flags = ((struct RBasic*)$arg0)->flags
24   if ($flags & RUBY_T_MASK) == RUBY_T_NONE
25     printf "T_NONE: "
26     print (struct RBasic *)$arg0
27   else
28   if ($flags & RUBY_T_MASK) == RUBY_T_NIL
29     printf "T_NIL: "
30     print (struct RBasic *)$arg0
31   else
32   if ($flags & RUBY_T_MASK) == RUBY_T_OBJECT
33     printf "T_OBJECT: "
34     print (struct RObject *)$arg0
35   else
36   if ($flags & RUBY_T_MASK) == RUBY_T_CLASS
37     printf "T_CLASS: "
38     print (struct RClass *)$arg0
39   else
40   if ($flags & RUBY_T_MASK) == RUBY_T_ICLASS
41     printf "T_ICLASS: "
42     print (struct RClass *)$arg0
43   else
44   if ($flags & RUBY_T_MASK) == RUBY_T_MODULE
45     printf "T_MODULE: "
46     print (struct RClass *)$arg0
47   else
48   if ($flags & RUBY_T_MASK) == RUBY_T_FLOAT
49     printf "T_FLOAT: %.16g ", (((struct RFloat*)$arg0)->float_value)
50     print (struct RFloat *)$arg0
51   else
52   if ($flags & RUBY_T_MASK) == RUBY_T_STRING
53     printf "T_STRING: "
54     set print address off
55     output (char *)(($flags & RUBY_FL_USER1) ? \
56             ((struct RString*)$arg0)->as.heap.ptr : \
57             ((struct RString*)$arg0)->as.ary)
58     set print address on
59     printf " bytesize:%ld ", ($flags & RUBY_FL_USER1) ? \
60             ((struct RString*)$arg0)->as.heap.len : \
61             (($flags & (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) >> RUBY_FL_USHIFT+2)
62     if !($flags & RUBY_FL_USER1)
63       printf "(embed) "
64     else
65       if ($flags & RUBY_FL_USER2)
66         printf "(shared) "
67       end
68       if ($flags & RUBY_FL_USER3)
69         printf "(assoc) "
70       end
71     end
72     printf "encoding:%d ", ($flags & RUBY_ENCODING_MASK) >> RUBY_ENCODING_SHIFT
73     if ($flags & RUBY_ENC_CODERANGE_MASK) == 0
74       printf "coderange:unknown "
75     else
76     if ($flags & RUBY_ENC_CODERANGE_MASK) == RUBY_ENC_CODERANGE_7BIT
77       printf "coderange:7bit "
78     else
79     if ($flags & RUBY_ENC_CODERANGE_MASK) == RUBY_ENC_CODERANGE_VALID
80       printf "coderange:valid "
81     else
82       printf "coderange:broken "
83     end
84     end
85     end
86     print (struct RString *)$arg0
87   else
88   if ($flags & RUBY_T_MASK) == RUBY_T_REGEXP
89     printf "T_REGEXP: "
90     set print address off
91     output ((struct RRegexp*)$arg0)->str
92     set print address on
93     printf " len:%ld ", ((struct RRegexp*)$arg0)->len
94     if $flags & RUBY_FL_USER6
95       printf "(none) "
96     end
97     if $flags & RUBY_FL_USER5
98       printf "(literal) "
99     end
100     if $flags & RUBY_FL_USER4
101       printf "(fixed) "
102     end
103     printf "encoding:%d ", ($flags & RUBY_ENCODING_MASK) >> RUBY_ENCODING_SHIFT
104     print (struct RRegexp *)$arg0
105   else
106   if ($flags & RUBY_T_MASK) == RUBY_T_ARRAY
107     printf "T_ARRAY: len=%ld ", ((struct RArray*)$arg0)->len
108     print (struct RArray *)$arg0
109     x/xw ((struct RArray*)$arg0)->ptr
110   else
111   if ($flags & RUBY_T_MASK) == RUBY_T_FIXNUM
112     printf "T_FIXNUM: "
113     print (struct RBasic *)$arg0
114   else
115   if ($flags & RUBY_T_MASK) == RUBY_T_HASH
116     printf "T_HASH: ",
117     if ((struct RHash *)$arg0)->ntbl
118       printf "len=%ld ", ((struct RHash *)$arg0)->ntbl->num_entries
119     end
120     print (struct RHash *)$arg0
121   else
122   if ($flags & RUBY_T_MASK) == RUBY_T_STRUCT
123     printf "T_STRUCT: len=%ld ", \
124       (($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? \
125        ($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) >> (RUBY_FL_USHIFT+1) : \
126        ((struct RStruct *)$arg0)->as.heap.len)
127     print (struct RStruct *)$arg0
128     x/xw (($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? \
129           ((struct RStruct *)$arg0)->as.ary : \
130           ((struct RStruct *)$arg0)->as.heap.len)
131   else
132   if ($flags & RUBY_T_MASK) == RUBY_T_BIGNUM
133     printf "T_BIGNUM: sign=%d len=%ld ", \
134       (($flags & RUBY_FL_USER1) != 0), \
135       (($flags & RUBY_FL_USER2) ? \
136        ($flags & (RUBY_FL_USER5|RUBY_FL_USER4|RUBY_FL_USER3)) >> (RUBY_FL_USHIFT+3) : \
137        ((struct RBignum*)$arg0)->as.heap.len)
138     if $flags & RUBY_FL_USER2
139       printf "(embed) "
140     end
141     print (struct RBignum *)$arg0
142     x/xw (($flags & RUBY_FL_USER2) ? \
143           ((struct RBignum*)$arg0)->as.ary : \
144           ((struct RBignum*)$arg0)->as.heap.digits)
145   else
146   if ($flags & RUBY_T_MASK) == RUBY_T_RATIONAL
147     printf "T_RATIONAL: "
148     print (struct RRational *)$arg0
149   else
150   if ($flags & RUBY_T_MASK) == RUBY_T_COMPLEX
151     printf "T_COMPLEX: "
152     print (struct RComplex *)$arg0
153   else
154   if ($flags & RUBY_T_MASK) == RUBY_T_FILE
155     printf "T_FILE: "
156     print (struct RFile *)$arg0
157     output *((struct RFile *)$arg0)->fptr
158     printf "\n"
159   else
160   if ($flags & RUBY_T_MASK) == RUBY_T_TRUE
161     printf "T_TRUE: "
162     print (struct RBasic *)$arg0
163   else
164   if ($flags & RUBY_T_MASK) == RUBY_T_FALSE
165     printf "T_FALSE: "
166     print (struct RBasic *)$arg0
167   else
168   if ($flags & RUBY_T_MASK) == RUBY_T_DATA
169     printf "T_DATA: "
170     print (struct RData *)$arg0
171   else
172   if ($flags & RUBY_T_MASK) == RUBY_T_MATCH
173     printf "T_MATCH: "
174     print (struct RMatch *)$arg0
175   else
176   if ($flags & RUBY_T_MASK) == RUBY_T_SYMBOL
177     printf "T_SYMBOL: "
178     print (struct RBasic *)$arg0
179   else
180   if ($flags & RUBY_T_MASK) == RUBY_T_UNDEF
181     printf "T_UNDEF: "
182     print (struct RBasic *)$arg0
183   else
184   if ($flags & RUBY_T_MASK) == RUBY_T_NODE
185     printf "T_NODE("
186     output (enum node_type)(($flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
187     printf "): "
188     print *(NODE *)$arg0
189   else
190     printf "unknown: "
191     print (struct RBasic *)$arg0
192   end
193   end
194   end
195   end
196   end
197   end
198   end
199   end
200   end
201   end
202   end
203   end
204   end
205   end
206   end
207   end
208   end
209   end
210   end
211   end
212   end
213   end
214   end
215   end
216   end
217   end
218   end
219   end
220   end
221   end
222   end
224 document rp
225   Print a Ruby's VALUE.
228 define nd_type
229   print (enum node_type)((((NODE*)$arg0)->flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
231 document nd_type
232   Print a Ruby' node type.
235 define nd_file
236   print ((NODE*)$arg0)->nd_file
238 document nd_file
239   Print the source file name of a node.
242 define nd_line
243   print ((unsigned int)((((NODE*)$arg0)->flags>>RUBY_NODE_LSHIFT)&RUBY_NODE_LMASK))
245 document nd_line
246   Print the source line number of a node.
249 # Print members of ruby node.
251 define nd_head
252   printf "u1.node: "
253   rp $arg0.u1.node
256 define nd_alen
257   printf "u2.argc: "
258   p $arg0.u2.argc
261 define nd_next
262   printf "u3.node: "
263   rp $arg0.u3.node
267 define nd_cond
268   printf "u1.node: "
269   rp $arg0.u1.node
272 define nd_body
273   printf "u2.node: "
274   rp $arg0.u2.node
277 define nd_else
278   printf "u3.node: "
279   rp $arg0.u3.node
283 define nd_orig
284   printf "u3.value: "
285   rp $arg0.u3.value
289 define nd_resq
290   printf "u2.node: "
291   rp $arg0.u2.node
294 define nd_ensr
295   printf "u3.node: "
296   rp $arg0.u3.node
300 define nd_1st
301   printf "u1.node: "
302   rp $arg0.u1.node
305 define nd_2nd
306   printf "u2.node: "
307   rp $arg0.u2.node
311 define nd_stts
312   printf "u1.node: "
313   rp $arg0.u1.node
317 define nd_entry
318   printf "u3.entry: "
319   p $arg0.u3.entry
322 define nd_vid
323   printf "u1.id: "
324   p $arg0.u1.id
327 define nd_cflag
328   printf "u2.id: "
329   p $arg0.u2.id
332 define nd_cval
333   printf "u3.value: "
334   rp $arg0.u3.value
338 define nd_cnt
339   printf "u3.cnt: "
340   p $arg0.u3.cnt
343 define nd_tbl
344   printf "u1.tbl: "
345   p $arg0.u1.tbl
349 define nd_var
350   printf "u1.node: "
351   rp $arg0.u1.node
354 define nd_ibdy
355   printf "u2.node: "
356   rp $arg0.u2.node
359 define nd_iter
360   printf "u3.node: "
361   rp $arg0.u3.node
365 define nd_value
366   printf "u2.node: "
367   rp $arg0.u2.node
370 define nd_aid
371   printf "u3.id: "
372   p $arg0.u3.id
376 define nd_lit
377   printf "u1.value: "
378   rp $arg0.u1.value
382 define nd_frml
383   printf "u1.node: "
384   rp $arg0.u1.node
387 define nd_rest
388   printf "u2.argc: "
389   p $arg0.u2.argc
392 define nd_opt
393   printf "u1.node: "
394   rp $arg0.u1.node
398 define nd_recv
399   printf "u1.node: "
400   rp $arg0.u1.node
403 define nd_mid
404   printf "u2.id: "
405   p $arg0.u2.id
408 define nd_args
409   printf "u3.node: "
410   rp $arg0.u3.node
414 define nd_noex
415   printf "u1.id: "
416   p $arg0.u1.id
419 define nd_defn
420   printf "u3.node: "
421   rp $arg0.u3.node
425 define nd_old
426   printf "u1.id: "
427   p $arg0.u1.id
430 define nd_new
431   printf "u2.id: "
432   p $arg0.u2.id
436 define nd_cfnc
437   printf "u1.cfunc: "
438   p $arg0.u1.cfunc
441 define nd_argc
442   printf "u2.argc: "
443   p $arg0.u2.argc
447 define nd_cname
448   printf "u1.id: "
449   p $arg0.u1.id
452 define nd_super
453   printf "u3.node: "
454   rp $arg0.u3.node
458 define nd_modl
459   printf "u1.id: "
460   p $arg0.u1.id
463 define nd_clss
464   printf "u1.value: "
465   rp $arg0.u1.value
469 define nd_beg
470   printf "u1.node: "
471   rp $arg0.u1.node
474 define nd_end
475   printf "u2.node: "
476   rp $arg0.u2.node
479 define nd_state
480   printf "u3.state: "
481   p $arg0.u3.state
484 define nd_rval
485   printf "u2.value: "
486   rp $arg0.u2.value
490 define nd_nth
491   printf "u2.argc: "
492   p $arg0.u2.argc
496 define nd_tag
497   printf "u1.id: "
498   p $arg0.u1.id
501 define nd_tval
502   printf "u2.value: "
503   rp $arg0.u2.value
506 define rb_p
507   call rb_p($arg0)
510 define rb_id2name
511   call rb_id2name($arg0)
514 define rb_classname
515   call classname($arg0)
516   rb_p $
517   print *(struct RClass*)$arg0
520 define rb_backtrace
521   call rb_backtrace()