From: Nobuyoshi Nakada Date: 2011-10-19T14:28:22+09:00 Subject: [ruby-core:40229] [Ruby 1.9 - Bug #5244] Continuation causes Bus Error on Debian sparc Issue #5244 has been updated by Nobuyoshi Nakada. knu says that 'flushw' is correct for SparcV9, but not 'ta 0x03'. And your platform seems 32bit, right? Then why defined(__sparc_v9__) || defined(__sparcv9) || defined(__arch64__) is true? Can't you show the result from: $ gcc -E -dM -xc /dev/null | grep -i -e sparc -e arch64 ---------------------------------------- Bug #5244: Continuation causes Bus Error on Debian sparc http://redmine.ruby-lang.org/issues/5244 Author: Lucas Nussbaum Status: Open Priority: Normal Assignee: Naohisa Goto Category: Target version: ruby -v: - Hi, $ ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -rcontinuation -e 'callcc { |c| c.call }' -e:1: [BUG] Bus Error ruby 1.9.3dev (2011-08-26) [sparc-linux] -- Control frame information ----------------------------------------------- c:0004 p:---- s:0009 b:0009 l:000008 d:000008 CFUNC :callcc c:0003 p:0009 s:0006 b:0006 l:000fcc d:001d74 EVAL -e:1 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:000fcc d:000fcc TOP -- Ruby level backtrace information ---------------------------------------- -e:1:in `
' -e:1:in `callcc' -- C level backtrace information ------------------------------------------- Bus error gdb says: (gdb) run -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -rcontinuation -e 'callcc { |c| c.call }' Starting program: /home/lucas/ruby1.9.1-1.9.3~preview1+svn33077/miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -rcontinuation -e 'callcc { |c| c.call }' [Thread debugging using libthread_db enabled] [New Thread 0xf7fc7b70 (LWP 31418)] [Thread 0xf7fc7b70 (LWP 31418) exited] process 31417 is executing new program: /home/lucas/ruby1.9.1-1.9.3~preview1+svn33077/ruby1.9.1 [Thread debugging using libthread_db enabled] [New Thread 0xf79e5b70 (LWP 31419)] Program received signal SIGBUS, Bus error. 0xf7f4d304 in cont_capture (stat=Cannot access memory at address 0x49 ) at cont.c:439 439 if (ruby_setjmp(cont->jmpbuf)) { (gdb) print cont Cannot access memory at address 0xfffffff9 -- http://redmine.ruby-lang.org