[MacRuby] #1059: Segfault occurs when send #initialize_copy to already initialized class.
#1059: Segfault occurs when send #initialize_copy to already initialized class. ----------------------------------+----------------------------------------- Reporter: watson1978@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: ----------------------------------+----------------------------------------- MacRuby should throw an exception, but Segfault occurs. Test Script: {{{ #!ruby # it "raises a TypeError when called on already initialized classes" Object.send :initialize_copy, String }}} BackTrace: {{{ $ DYLD_LIBRARY_PATH=. gdb --args ./macruby -I./lib ~/tmp/tt.rb Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000020 0x00007fff80016410 in class_setSuperclass () (gdb) bt #0 0x00007fff80016410 in class_setSuperclass () #1 0x0000000100028f20 in rb_mod_init_copy (clone=140735080617064, sel=0x0, orig=8590006368) at class.c:269 #2 0x0000000100029059 in rb_class_init_copy (clone=140735080617064, sel=0x100e243b0, orig=8590006368) at class.c:310 #3 0x00000001001381fa in __rb_vm_rcall [inlined] () at /Users/watson/src /macruby-trunk-svn/dispatcher.cpp:161 #4 0x00000001001381fa in ruby_dispatch [inlined] () at /Users/watson/src /macruby-trunk-svn/dispatcher.cpp:466 #5 0x00000001001381fa in rb_vm_dispatch () at dispatcher.cpp:849 #6 0x0000000103300406 in ?? () #7 0x00000001033000b7 in ?? () #8 0x000000010015268d in rb_vm_run (fname=0x200051140 "/Users/watson/tmp/tt.rb", node=0x20004eb40, binding=0x0, inside_eval=false) at vm.cpp:3943 #9 0x0000000100038d71 in ruby_run_node (n=0x20004eb40) at eval.c:211 #10 0x0000000100000c15 in main (argc=3, argv=0x100e1de30, envp=0x7fff5fbfee68) at main.cpp:40 (gdb) }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1059> MacRuby <http://macruby.org/>
#1059: Segfault occurs when send #initialize_copy to already initialized class. ----------------------------------+----------------------------------------- Reporter: watson1978@… | Owner: lsansonetti@… Type: defect | Status: closed Priority: blocker | Milestone: MacRuby 0.9 Component: MacRuby | Resolution: fixed Keywords: | ----------------------------------+----------------------------------------- Changes (by watson1978@…): * status: new => closed * resolution: => fixed * milestone: => MacRuby 0.9 Comment: Fixed with r5070. -- Ticket URL: <http://www.macruby.org/trac/ticket/1059#comment:1> MacRuby <http://macruby.org/>
#1059: Segfault occurs when send #initialize_copy to already initialized class. ----------------------------------+----------------------------------------- Reporter: watson1978@… | Owner: lsansonetti@… Type: defect | Status: reopened Priority: blocker | Milestone: MacRuby 0.9 Component: MacRuby | Resolution: Keywords: | ----------------------------------+----------------------------------------- Changes (by watson1978@…): * status: closed => reopened * resolution: fixed => Comment: MacRuby still crashes when following code runs. Sorry X( {{{ #!ruby String.send :initialize_copy, Fixnum Object.send :initialize_copy, String }}} Result: {{{ $ macruby tt.rb Assertion failed: (type != 0), function rb_objc_type, file class.c, line 1344. zsh: abort macruby tt.rb }}} BackTrace: {{{ Program received signal SIGABRT, Aborted. 0x00007fff88411616 in __kill () (gdb) bt #0 0x00007fff88411616 in __kill () #1 0x00007fff884b1cca in abort () #2 0x00007fff8849ec90 in __assert_rtn () #3 0x000000010002ab03 in rb_objc_type (obj=<value temporarily unavailable, due to optimizations>) at class.c:1344 #4 0x0000000100067f3c in rb_type (obj=8590244416) at ruby.h:1044 #5 0x000000010006a352 in rb_obj_freeze_m (obj=8590244416, sel=0x0) at object.c:1127 #6 0x000000010006a5ae in rb_obj_freeze (obj=8590244416) at object.c:1140 #7 0x00000001000daa82 in classname (klass=8590162208) at variable.c:209 #8 0x00000001000dbc18 in rb_class_path (klass=8590162208) at variable.c:242 #9 0x00000001000dcc11 in rb_class_name [inlined] () at variable.c:337 #10 0x00000001000dcc11 in rb_class2name [inlined] () at /Users/watson/src /macruby-trunk-svn/variable.c:343 #11 0x00000001000dcc11 in rb_obj_classname (obj=<value temporarily unavailable, due to optimizations>) at variable.c:349 #12 0x00000001000e0533 in rb_rb2oc_exception (exc=8590310112) at objc.m:472 #13 0x000000010015959d in __vm_raise [inlined] () at /Users/watson/src /macruby-trunk-svn/vm.cpp:3412 #14 0x000000010015959d in rb_vm_raise (exception=<value temporarily unavailable, due to optimizations>) at vm.cpp:3480 #15 0x0000000100041509 in rb_exc_raise (mesg=<value temporarily unavailable, due to optimizations>) at eval.c:322 #16 0x000000010003f2f4 in rb_raise (exc=<value temporarily unavailable, due to optimizations>, fmt=<value temporarily unavailable, due to optimizations>) at error.c:1149 #17 0x000000010002bf46 in rb_class_init_copy (clone=4309359584, sel=<value temporarily unavailable, due to optimizations>, orig=8590005408) at class.c:312 #18 0x0000000100143acb in rb_vm_dispatch (_vm=0x100d1e6c0, cache=0x100e78cc0, top=0, self=140735080617064, klass=0x7fff707cd440, sel=0x100d23720, block=0x0, opt=2 '\002', argc=<value temporarily unavailable, due to optimizations>, argv=0x7fff5fbff5b8) at dispatcher.cpp:161 #19 0x00000001032004e6 in ?? () #20 0x0000000103200192 in ?? () #21 0x000000010015b1b3 in rb_vm_run (fname=<value temporarily unavailable, due to optimizations>, node=0x20004d340, binding=<value temporarily unavailable, due to optimizations>, inside_eval=false) at vm.cpp:3942 #22 0x0000000100041b70 in ruby_run_node (n=0x20004d340) at eval.c:211 #23 0x0000000100000d28 in main (argc=2, argv=0x100d1de30, envp=<value temporarily unavailable, due to optimizations>) at main.cpp:40 (gdb) }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1059#comment:2> MacRuby <http://macruby.org/>
participants (1)
-
MacRuby