Gus Mueller
gus****@flyin*****
Tue Jul 17 06:37:02 JST 2007
Hello, I'm getting a really strange crash in ruby land when I load up rubycocoa in my app from a bundle. It's completely repeatable as well: Thread 0 Crashed: 0 libruby.1.dylib 0x964674f1 rb_thread_wait_fd + 261 1 libruby.1.dylib 0x9646371e Init_eval + 17041 2 libruby.1.dylib 0x964641d8 Init_eval + 19787 3 libruby.1.dylib 0x96464b8a rb_obj_call_init + 478 4 libruby.1.dylib 0x96464c74 rb_funcall + 33 5 libruby.1.dylib 0x96479a00 rb_hash_aset + 808 6 libruby.1.dylib 0x964bcd7c st_lookup + 22 7 libruby.1.dylib 0x9647735c rb_hash_aref + 42 8 com.apple.rubycocoa 0x17823439 eval_ruby_program_for_class + 263 9 com.apple.QuartzCore 0x93ed1ba4 -[CIFilter attributes] + 980 10 com.apple.QuartzCore 0x93ed16dd -[CIFilter setDefaults] + 35 11 com.flyingmeat.VoodooPad 0x00065575 -[VPAnimatingTabView createTransitionFilterForRect:initialCIImage:finalCIImage:] + 283 12 com.flyingmeat.VoodooPad 0x000650e6 -[VPAnimatingTabView selectTabViewItem:] + 1374 13 com.flyingmeat.VoodooPad 0x0005ebe2 -[PSMTabBarControl tabClick:] + 55 14 com.flyingmeat.VoodooPad 0x0005e52c -[PSMTabBarControl mouseUp:] + 621 15 com.apple.AppKit 0x9336f42b -[NSWindow sendEvent:] + 5403 16 com.apple.AppKit 0x93361350 -[NSApplication sendEvent:] + 5023 17 com.flyingmeat.VoodooPad 0x00027f59 -[VPApplication sendEvent:] + 1237 18 com.apple.AppKit 0x9328bdfe -[NSApplication run] + 547 19 com.apple.AppKit 0x9327fd2f NSApplicationMain + 573 20 com.flyingmeat.VoodooPad 0x000027d6 _start + 216 21 com.flyingmeat.VoodooPad 0x000026fd start + 41 What's weird, is that I'm never even calling ruby. It seems like ruby is inserting itself into the middle of core image. Is this expected? Here's what I'm doing, and how to get this to reproduce. (It's slightly involved, sorry about that...) Run a latest build of VoodooPad: http://www.flyingmeat.com/download/latest/ Launch it at least once, quit, then enter these defaults at the command line: defaults write com.flyingmeat.VoodooPad superfluousEffects 1 defaults write com.flyingmeat.VoodooPad superfluousEffectsDuration .1 defaults write com.flyingmeat.VoodooPad disableCrashReporter 1 That turns on some core animation transitions when switching tabs, speeds them up, and disables my crash reporter so you can see the crash reports yourself. Build the VPRubyPluginEnabler sample code. If you want to skip this part, I've got a build here: http://gusmueller.com/stuff/RubyPluginEnabler.vpplugin.zip Put that in: ~/Library/Application Support/VoodooPad/PlugIns/. Launch VP, make a new document, and open a page in a new tab (Just drag some text up to the tab bar for a easy way to do this). Switching back and forth between tabs makes some core image transitions, and doing it enough times triggers the crash. It used to be that it would take between 15-20 calls to CI to get it to crash, but I updated to what's in svn for RubyCocoa, and it takes a bit longer now. The keyboard shortcut to switch tabs is: cmd-shift- option-]. Press and hold for ~12 seconds on my mac pro. Here's a movie if that makes no sense: http://gusmueller.com/stuff/VoodooPadRubyCocoaCrash.mov I've bulit ruby like so: ruby install.rb config --build-as-embeddable --build-universal Any ideas? Where should I start, and what can I do to help fix this? thanks, -gus -- August 'Gus' Mueller Flying Meat Inc. http://flyingmeat.com/