From: Sigurd Date: 2012-06-22T16:35:31+09:00 Subject: Re: How to debug ruby source code using gdb?, can't print array content Ruby has GDB helpers. Take a look at https://github.com/ruby/ruby/blob/trunk/.gdbinit Fo instance rp prints any ruby value. There are other handy helpers as well. On Jun 22, 2012, at 7:55 AM, gmspro gmspro wrote: > I tried something like this in array.c > > rb_ary_initialize(int argc, VALUE *argv, VALUE ary) > { > long len; > int ln; > int *ar; > VALUE size, val; > switch (TYPE(ary)) { > case T_FIXNUM: > break; > case T_STRING: > break; > case T_ARRAY: > ar=RARRAY(ary); > ln=RARRAY_LEN(ary); > printf("ln: %d\n",ln); > ar=RARRAY_PTR(ary); > break; > default: > rb_raise(rb_eTypeError, "not valid value"); > break; > } > > > gdb ./ruby > (gdb)run > ctrl+c > (gdb)break array.c:rb_ary_initialize > (gdb)continue > arr=Array.new(3) > arr[0]=5 > arr[1]=7 > ctrl+d > (gdb)next > > But i can't understand how to print the value using printf(); in > array.c:rb_ary_initialize function doing some casting. > > Can anyone post reply with example to do it? > > https://github.com/ruby/ruby/blob/0b0dea752c0ef35d1a964b812a1a7fd033ab9e2e/README.EXT#L125 > > https://github.com/ruby/ruby/blob/0b0dea752c0ef35d1a964b812a1a7fd033ab9e2e/array.c#L569 > > Thanks. > > -- > Posted via http://www.ruby-forum.com/. >