[MacRuby] #882: Bus error with catch / throw, Using 32bit arch.

MacRuby ruby-noreply at macosforge.org
Mon Aug 30 16:59:33 PDT 2010

#882: Bus error with catch / throw, Using 32bit arch.
 Reporter:  watson1978@…          |       Owner:  lsansonetti@…        
     Type:  defect                |      Status:  new                  
 Priority:  blocker               |   Milestone:                       
Component:  MacRuby               |    Keywords:                       

Comment(by watson1978@…):

 After Rebuilt:
 $ rake clean; mkdir doc; RC_ARCHS=i386 rake jobs=2

 $ cat t.rb
 # spec/frozen/language/catch_spec.rb
 # it "does not match objects that are not exactly the same" do
 catch("exit") { throw :exit }
 catch("exit") { throw "exit" }

 MacRuby 0.7 (ruby 1.9.2) [universal-darwin10.0, i386]
 "git commit 4dbcad71ba4233c3eef93d6276d920132d0d91c9"

 $ git log | head -7
 commit 4dbcad71ba4233c3eef93d6276d920132d0d91c9
 Author: lsansonetti at apple.com <lsansonetti at apple.com@23306eb0-4c56-4727
 Date:   Mon Aug 30 20:52:55 2010 +0000

     #sprintf: don't try to mutate symbols


 $ DYLD_LIBRARY_PATH=. ./macruby -v -I./lib t.rb
 MacRuby 0.7 (ruby 1.9.2) [universal-darwin10.0, i386]
 zsh: bus error  DYLD_LIBRARY_PATH=. arch -i386 ./macruby -v -I./lib t.rb

 $ DYLD_LIBRARY_PATH=. gdb --args ./macruby -v -I./lib t.rb
 GNU gdb 6.3.50-20050815 (Apple version gdb-1469) (Wed May  5 04:36:56 UTC
 Copyright 2004 Free Software Foundation, Inc.
 GDB is free software, covered by the GNU General Public License, and you
 welcome to change it and/or distribute copies of it under certain
 Type "show copying" to see the conditions.
 There is absolutely no warranty for GDB.  Type "show warranty" for
 This GDB was configured as "x86_64-apple-darwin"...Reading symbols for
 shared libraries ..... done

 (gdb) r
 Starting program: /Users/watson/src/MacRuby/macruby -v -I./lib t.rb
 warning: posix_spawn failed, trying execvp, error: 86
 Reading symbols for shared libraries .++++......................... done
 Reading symbols for shared libraries . done
 MacRuby 0.7 (ruby 1.9.2) [universal-darwin10.0, i386]

 Program received signal EXC_BAD_ACCESS, Could not access memory.
 Reason: KERN_PROTECTION_FAILURE at address: 0x00000003
 0x0015e2d6 in RoxorVM::ruby_catch (this=0x1406570, tag=34058336) at
 4144            if (sexc != NULL && sexc->type == CATCH_THROW_EXCEPTION) {
 (gdb) p sexc
 $1 = (RoxorSpecialException *) 0x3
 (gdb) p sexc->type
 Cannot access memory at address 0x3
 (gdb) bt
 #0  0x0015e2d6 in RoxorVM::ruby_catch (this=0x1406570, tag=34058336) at
 #1  0x00164795 in rb_vm_catch (tag=34058336) at vm.cpp:4167
 #2  0x0015269d in rb_vm_dispatch (_vm=0x1406570, cache=0xa852c50,
 top=33675840, self=33675840, klass=0x201daf0, sel=0x14720f0,
 block=0x2078ce0, opt=2 '\002', argc=1, argv=0xbfffe898) at
 #3  0x01700455 in ?? ()
 #4  0x017000ac in ?? ()
 #5  0x0015f6dc in rb_vm_run (fname=0x207a100 "t.rb", node=0x207aca0,
 binding=0x0, inside_eval=false) at vm.cpp:3823
 #6  0x000416d1 in ruby_run_node (n=0x207aca0) at eval.c:211
 #7  0x00001c68 in main (argc=4, argv=0x14060f0, envp=0xbfffe980) at

Ticket URL: <http://www.macruby.org/trac/ticket/882#comment:2>
MacRuby <http://macruby.org/>

More information about the macruby-tickets mailing list