invoking Gl.is_available? crashes irb
I'm running ruby 1.9.3 installed from rvm on a mac running OS X 10.6.8.
Here's the dump from irb of the interaction I performed to make it crash. It's certainly reproducible on my system. I haven't tried to reproduce it on other machines.
If you contact me, I'd be happy to help diagnose the problem further.
$irb 1.9.3-p0 :001 > require 'opengl' => true 1.9.3-p0 :002 > Gl => Gl 1.9.3-p0 :003 > Gl.is_available?(2.0) (irb):3: [BUG] Segmentation fault ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10.8.0]
-- Control frame information ----------------------------------------------- c:0024 p:---- s:0086 b:0086 l:000085 d:000085 CFUNC :is_available? c:0023 p:0017 s:0082 b:0082 l:001278 d:000081 EVAL (irb):3 c:0022 p:---- s:0080 b:0080 l:000079 d:000079 FINISH c:0021 p:---- s:0078 b:0078 l:000077 d:000077 CFUNC :eval c:0020 p:0028 s:0071 b:0071 l:000070 d:000070 METHOD /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/workspace.rb:80 c:0019 p:0033 s:0064 b:0063 l:000062 d:000062 METHOD /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/context.rb:254 c:0018 p:0031 s:0058 b:0058 l:000068 d:000057 BLOCK /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:159 c:0017 p:0042 s:0050 b:0050 l:000049 d:000049 METHOD /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:273 c:0016 p:0011 s:0045 b:0045 l:000068 d:000044 BLOCK /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:156 c:0015 p:0144 s:0041 b:0041 l:000024 d:000040 BLOCK /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:243 c:0014 p:---- s:0038 b:0038 l:000037 d:000037 FINISH c:0013 p:---- s:0036 b:0036 l:000035 d:000035 CFUNC :loop c:0012 p:0009 s:0033 b:0033 l:000024 d:000032 BLOCK /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:229 c:0011 p:---- s:0031 b:0031 l:000030 d:000030 FINISH c:0010 p:---- s:0029 b:0029 l:000028 d:000028 CFUNC :catch c:0009 p:0023 s:0025 b:0025 l:000024 d:000024 METHOD /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:228 c:0008 p:0046 s:0022 b:0022 l:000068 d:000068 METHOD /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:155 c:0007 p:0011 s:0019 b:0019 l:000498 d:000018 BLOCK /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:70 c:0006 p:---- s:0017 b:0017 l:000016 d:000016 FINISH c:0005 p:---- s:0015 b:0015 l:000014 d:000014 CFUNC :catch c:0004 p:0183 s:0011 b:0011 l:000498 d:000498 METHOD /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:69 c:0003 p:0142 s:0006 b:0006 l:002128 d:0014c8 EVAL /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/bin/irb:16 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:002128 d:002128 TOP
-- Ruby level backtrace information ----------------------------------------
/Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/bin/irb:16:in <main>' /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:69:instart'
/Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:69:in catch' /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:70:inblock in start'
/Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:155:in eval_input' /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:228:ineach_top_level_statement'
/Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in catch' /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:229:inblock in each_top_level_statement'
/Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in loop' /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:243:inblock (2 levels) in each_top_level_statement'
/Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:156:in block in eval_input' /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:273:insignal_status'
/Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb:159:in block (2 levels) in eval_input' /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/context.rb:254:inevaluate'
/Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/workspace.rb:80:in evaluate' /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/workspace.rb:80:ineval'
(irb):3:in irb_binding' (irb):3:inis_available?'
-- C level backtrace information -------------------------------------------
See Crash Report log file under ~/Library/Logs/CrashReporter or /Library/Logs/CrashReporter, for the more detail of.
-- Other runtime information -----------------------------------------------
-
Loaded script: irb
-
Loaded features:
0 enumerator.so 1 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/x86_64-darwin10.8.0/enc/encdb.bundle 2 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/x86_64-darwin10.8.0/enc/trans/transdb.bundle 3 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/defaults.rb 4 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/x86_64-darwin10.8.0/rbconfig.rb 5 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/deprecate.rb 6 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/exceptions.rb 7 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb 8 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems.rb 9 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/e2mmap.rb 10 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/init.rb 11 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/workspace.rb 12 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/inspector.rb 13 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/context.rb 14 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/extend-command.rb 15 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/output-method.rb 16 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/notifier.rb 17 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/slex.rb 18 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/ruby-token.rb 19 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/ruby-lex.rb 20 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/src_encoding.rb 21 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/magic-file.rb 22 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/x86_64-darwin10.8.0/readline.bundle 23 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/input-method.rb 24 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/locale.rb 25 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb.rb 26 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/version.rb 27 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb 28 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/platform.rb 29 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb 30 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/path_support.rb 31 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb 32 /Users/gilbo/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/completion.rb 33 /Users/gilbo/.rvm/scripts/irbrc.rb 34 /Users/gilbo/.rvm/gems/ruby-1.9.3-p0/gems/ruby-opengl2-0.60.3/lib/gl.bundle 35 /Users/gilbo/.rvm/gems/ruby-1.9.3-p0/gems/ruby-opengl2-0.60.3/lib/glu.bundle 36 /Users/gilbo/.rvm/gems/ruby-1.9.3-p0/gems/ruby-opengl2-0.60.3/lib/glut.bundle 37 /Users/gilbo/.rvm/gems/ruby-1.9.3-p0/gems/ruby-opengl2-0.60.3/lib/opengl.rb
[NOTE] You may have encountered a bug in the Ruby interpreter or extension libraries. Bug reports are welcome. For details: http://www.ruby-lang.org/bugreport.html
Abort trap $
Error is at glGetString(GL_EXTENSIONS); in ext/gl/gl.c. Still dunno how to fix it (glGetString is an OpenGL function).