[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" }

 $ DYLD_LIBRARY_PATH=. ./macruby -v -e 'p MACRUBY_REVISION'
 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
 -a40e-e92c0eb68959>
 Date:   Mon Aug 30 20:52:55 2010 +0000

     #sprintf: don't try to mutate symbols

     git-svn-id:
 http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4478
 23306eb0-4c56-4727-a40e-e92c0eb68959

 $ 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
 2010)
 Copyright 2004 Free Software Foundation, Inc.
 GDB is free software, covered by the GNU General Public License, and you
 are
 welcome to change it and/or distribute copies of it under certain
 conditions.
 Type "show copying" to see the conditions.
 There is absolutely no warranty for GDB.  Type "show warranty" for
 details.
 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
 vm.cpp:4144
 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
 vm.cpp:4144
 #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
 dispatcher.cpp:161
 #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
 main.cpp:40
 (gdb)
 }}}

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



More information about the macruby-tickets mailing list