[MacRuby-devel] [MacRuby] #819: Getting references to Method instances leads to segfault
MacRuby
ruby-noreply at macosforge.org
Fri Jul 30 15:48:42 PDT 2010
#819: Getting references to Method instances leads to segfault
-------------------------------------+--------------------------------------
Reporter: eloy.de.enige@… | Owner: lsansonetti@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby | Keywords:
-------------------------------------+--------------------------------------
As discussed with Laurent, it was hard to reduce the problem. Hence, here
are the steps to take, to run a spec which shows the problem:
{{{
% git clone git://github.com/alloy/interactive-macruby.git im
% cd im
% git checkout 966e48cd04e1ee77630869af7f75c356cd106981
% env DYLD_LIBRARY_PATH=../macruby gdb --args macruby -I
/Library/Ruby/Gems/1.8/gems/mspec-1.5.17/lib /usr/bin/mspec-run
spec/node_spec.rb
}}}
(You need the mspec gem installed and adjust the paths in the last line
accordingly.)
The backtrace:
{{{
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000018
0x0000000100049978 in method_eq (method=<value temporarily unavailable,
due to optimizations>, sel=<value temporarily unavailable, due to
optimizations>, other=8599443168) at proc.c:721
721 if (m1->oclass != m2->oclass
(gdb) bt
#0 0x0000000100049978 in method_eq (method=<value temporarily
unavailable, due to optimizations>, sel=<value temporarily unavailable,
due to optimizations>, other=8599443168) at proc.c:721
#1 0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e51840, top=0, self=8600378144, klass=0x2000a5360,
sel=0x100f6ba40, block=0x0, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x7fff5fbec438) at
dispatcher.cpp:161
#2 0x000000010355a870 in ?? ()
#3 0x0000000103597c1a in ?? ()
#4 0x0000000106fd353f in ?? ()
#5 0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e6fe40, top=0, self=8599775776, klass=0x200968060,
sel=0x100f6ba40, block=0x0, opt=2 '\002', argc=<value temporarily
unavailable, due to optimizations>, argv=0x7fff5fbecdb8) at
dispatcher.cpp:161
#6 0x000000010006d700 in rb_equal (obj1=8599775776, obj2=8600076928) at
vm.h:594
#7 0x0000000100016b18 in rb_ary_equal (ary1=8600117504, ary2=8599978848)
at array.c:139
#8 0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e51480, top=0, self=8600117504, klass=0x20006d2c0,
sel=0x100f6ba40, block=0x0, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x7fff5fbedb58) at
dispatcher.cpp:161
#9 0x000000010355a870 in ?? ()
#10 0x0000000103597c1a in ?? ()
#11 0x00000001035b3024 in ?? ()
#12 0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e6f3c0, top=0, self=8599996960, klass=0x2006682a0,
sel=0x100f6ba40, block=0x0, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x7fff5fbee8f8) at
dispatcher.cpp:161
#13 0x000000010355a870 in ?? ()
#14 0x0000000103597c1a in ?? ()
#15 0x0000000106fe07b9 in ?? ()
#16 0x000000010014221d in rb_vm_yield_under (klass=<value temporarily
unavailable, due to optimizations>, self=8597242336, argc=<value
temporarily unavailable, due to optimizations>, argv=0x2006682a0) at
dispatcher.cpp:98
#17 0x00000001000ff7ff in specific_eval (argc=<value temporarily
unavailable, due to optimizations>, argv=0x0, klass=8597240960,
self=8597242336) at vm_eval.c:372
#18 0x000000010014156a in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e72c00, top=8596070016, self=8597242336, klass=0x2006f7c80,
sel=0x100fd04d0, block=0x200968480, opt=0 '\0', argc=0, argv=0x0) at
dispatcher.cpp:444
#19 0x000000010355a870 in ?? ()
#20 0x0000000106f8d805 in ?? ()
#21 0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e7a7c0, top=8599606848, self=8596070016, klass=0x2005da620,
sel=0x1060d5910, block=0x200968480, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x7fff5fbf08c8) at
dispatcher.cpp:161
#22 0x000000010355a870 in ?? ()
#23 0x0000000106fd6862 in ?? ()
#24 0x00000001001440d7 in rb_vm_yield_args (_vm=0x100f1e410, argc=<value
temporarily unavailable, due to optimizations>, argv=0x2005da620) at
dispatcher.cpp:100
#25 0x0000000100038676 in enum_all_func [inlined] () at
/Users/eloy/Documents/DEVELOPMENT/MacRuby/macruby/enum.c:872
#26 0x0000000100038676 in all_iter_i (i=<value temporarily unavailable,
due to optimizations>, memo=0x7fff5fbf1ad8, argc=<value temporarily
unavailable, due to optimizations>, argv=<value temporarily unavailable,
due to optimizations>) at enum.c:872
#27 0x0000000100144175 in rb_vm_yield_args (_vm=0x100f1e410, argc=1,
argv=0x7fff5fbf1128) at dispatcher.cpp:1066
#28 0x00000001000fe1c8 in rb_yield (val=8599672960) at vm_eval.c:196
#29 0x000000010001541d in rary_each (ary=8600308224, sel=<value
temporarily unavailable, due to optimizations>) at array.c:1064
#30 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e52680, top=0, self=8600308224, klass=0x20006d2c0,
sel=0x100f4ca20, block=0x2009a6f80, opt=2 '\002', argc=<value temporarily
unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
#31 0x00000001000fdd43 in rb_objc_block_call (obj=8600308224,
sel=0x100f4ca20, argc=0, argv=0x0, bl_proc=<value temporarily unavailable,
due to optimizations>, data2=<value temporarily unavailable, due to
optimizations>) at vm.h:594
#32 0x0000000100037417 in enum_all (obj=8600308224, sel=<value temporarily
unavailable, due to optimizations>) at enum.c:896
#33 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e6ac80, top=8599606848, self=8600308224, klass=0x20006d2c0,
sel=0x100fb82c0, block=0x2009f0280, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
#34 0x000000010355a870 in ?? ()
#35 0x0000000106fd64ac in ?? ()
#36 0x00000001001414ac in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e80880, top=8599606848, self=8599606848, klass=0x20060b640,
sel=0x1060d5910, block=0x0, opt=2 '\002', argc=<value temporarily
unavailable, due to optimizations>, argv=0x7fff5fbf2a20) at
dispatcher.cpp:165
#37 0x000000010355a870 in ?? ()
#38 0x0000000106fd97a4 in ?? ()
#39 0x00000001001440d7 in rb_vm_yield_args (_vm=0x100f1e410, argc=<value
temporarily unavailable, due to optimizations>, argv=0x20060b640) at
dispatcher.cpp:100
#40 0x00000001000fe1c8 in rb_yield (val=8600346176) at vm_eval.c:196
#41 0x000000010001541d in rary_each (ary=8600527360, sel=<value
temporarily unavailable, due to optimizations>) at array.c:1064
#42 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e52680, top=8599606848, self=8600527360, klass=0x20006d2c0,
sel=0x100f4ca20, block=0x2009ab5e0, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
#43 0x000000010355a870 in ?? ()
#44 0x0000000106fd7f11 in ?? ()
#45 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e60a80, top=8596070016, self=8599606848, klass=0x20060b640,
sel=0x1080133f0, block=0x0, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
#46 0x000000010355a870 in ?? ()
#47 0x00000001035c112d in ?? ()
#48 0x00000001001414d5 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e6fcc0, top=8590069344, self=8596070016, klass=0x2005da620,
sel=0x1081aae80, block=0x20096c9e0, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x7fff5fbf6298) at
dispatcher.cpp:163
#49 0x000000010355a870 in ?? ()
#50 0x00000001035c137e in ?? ()
#51 0x00000001001414ac in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e7bf00, top=8590069344, self=8590069344, klass=0x200020680,
sel=0x1081aae80, block=0x20096c9e0, opt=2 '\002', argc=<value temporarily
unavailable, due to optimizations>, argv=0x7fff5fbf6440) at
dispatcher.cpp:165
#52 0x000000010355a870 in ?? ()
#53 0x0000000106f8e2cd in ?? ()
#54 0x000000010014e288 in rb_vm_run (fname=<value temporarily unavailable,
due to optimizations>, node=0x200656280, binding=<value temporarily
unavailable, due to optimizations>, inside_eval=false) at vm.cpp:3787
#55 0x0000000100047f85 in rb_load (fname=<value temporarily unavailable,
due to optimizations>, wrap=<value temporarily unavailable, due to
optimizations>) at load.c:95
#56 0x000000010004803a in rb_f_load (rcv=<value temporarily unavailable,
due to optimizations>, sel=<value temporarily unavailable, due to
optimizations>, argc=<value temporarily unavailable, due to
optimizations>, argv=<value temporarily unavailable, due to
optimizations>) at load.c:120
#57 0x00000001001415b9 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e7c530, top=8597242336, self=8590038848, klass=0x200019700,
sel=0x7fff82168c91, block=0x0, opt=0 '\0', argc=1, argv=0x7fff5fbf7e68) at
dispatcher.cpp:435
#58 0x000000010355a870 in ?? ()
#59 0x0000000106f8d6e8 in ?? ()
#60 0x000000010014221d in rb_vm_yield_under (klass=<value temporarily
unavailable, due to optimizations>, self=8597242336, argc=<value
temporarily unavailable, due to optimizations>, argv=0x200019700) at
dispatcher.cpp:98
#61 0x00000001000ff7ff in specific_eval (argc=<value temporarily
unavailable, due to optimizations>, argv=0x0, klass=8597240960,
self=8597242336) at vm_eval.c:372
#62 0x000000010014156a in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e72c00, top=8596070016, self=8597242336, klass=0x2006f7c80,
sel=0x100fd04d0, block=0x2006f1000, opt=0 '\0', argc=0, argv=0x0) at
dispatcher.cpp:444
#63 0x000000010355a870 in ?? ()
#64 0x0000000106f8d805 in ?? ()
#65 0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e7a7c0, top=8596070016, self=8596070016, klass=0x2005da620,
sel=0x1060d5910, block=0x2006f1000, opt=2 '\002', argc=<value temporarily
unavailable, due to optimizations>, argv=0x7fff5fbf9dd8) at
dispatcher.cpp:161
#66 0x000000010355a870 in ?? ()
#67 0x0000000106f8d2a8 in ?? ()
#68 0x00000001001440d7 in rb_vm_yield_args (_vm=0x100f1e410, argc=<value
temporarily unavailable, due to optimizations>, argv=0x2005da620) at
dispatcher.cpp:100
#69 0x00000001000fe1c8 in rb_yield (val=8597315392) at vm_eval.c:196
#70 0x000000010001541d in rary_each (ary=8597268256, sel=<value
temporarily unavailable, due to optimizations>) at array.c:1064
#71 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e52680, top=8596070016, self=8597268256, klass=0x20006d2c0,
sel=0x100f4ca20, block=0x2006feae0, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
#72 0x000000010355a870 in ?? ()
#73 0x0000000106f8ccba in ?? ()
#74 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e68be0, top=8596070016, self=8596070016, klass=0x2005da620,
sel=0x7fff873a632e, block=0x0, opt=1 '\001', argc=<value temporarily
unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
#75 0x000000010355a870 in ?? ()
#76 0x0000000106f8c2f7 in ?? ()
#77 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e669c0, top=8596723040, self=8596070016, klass=0x2005da620,
sel=0x1080133f0, block=0x0, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
#78 0x000000010355a870 in ?? ()
#79 0x0000000106f8bd77 in ?? ()
#80 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e6ab00, top=8595905888, self=8596723040, klass=0x2005b1d60,
sel=0x7fff8081cb3c, block=0x0, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
#81 0x000000010355a870 in ?? ()
#82 0x0000000106f7d48f in ?? ()
#83 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e5c4f0, top=8590069344, self=8595905888, klass=0x2005b1ea0,
sel=0x7fff808c6011, block=0x0, opt=0 '\0', argc=<value temporarily
unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
#84 0x000000010355a870 in ?? ()
#85 0x000000010359e5ee in ?? ()
#86 0x000000010014e288 in rb_vm_run (fname=<value temporarily unavailable,
due to optimizations>, node=0x2003ff200, binding=<value temporarily
unavailable, due to optimizations>, inside_eval=false) at vm.cpp:3787
#87 0x0000000100047f85 in rb_load (fname=<value temporarily unavailable,
due to optimizations>, wrap=<value temporarily unavailable, due to
optimizations>) at load.c:95
#88 0x000000010004803a in rb_f_load (rcv=<value temporarily unavailable,
due to optimizations>, sel=<value temporarily unavailable, due to
optimizations>, argc=<value temporarily unavailable, due to
optimizations>, argv=<value temporarily unavailable, due to
optimizations>) at load.c:120
#89 0x00000001001415b9 in rb_vm_dispatch (_vm=0x100f1e410,
cache=0x100e75c30, top=8590069344, self=8590069344, klass=0x200020680,
sel=0x7fff82168c91, block=0x0, opt=2 '\002', argc=1, argv=0x7fff5fbff3a0)
at dispatcher.cpp:435
#90 0x000000010355a870 in ?? ()
#91 0x000000010355a337 in ?? ()
#92 0x000000010014e288 in rb_vm_run (fname=<value temporarily unavailable,
due to optimizations>, node=0x2000ce6c0, binding=<value temporarily
unavailable, due to optimizations>, inside_eval=false) at vm.cpp:3787
#93 0x00000001000400f0 in ruby_run_node (n=0x2000ce6c0) at eval.c:211
#94 0x0000000100000d28 in main ()
}}}
--
Ticket URL: <http://www.macruby.org/trac/ticket/819>
MacRuby <http://macruby.org/>
More information about the MacRuby-devel
mailing list