From: Wincent Colaiuta Date: 2008-01-18T07:09:59+09:00 Subject: DTrace segfaults on Leopard I'd like to use DTrace on Leopard to do some profiling of a Ruby app but I'm finding that any script that uses the "object-free" probe eventually leads to a segfault. For example, the script that Apple provides at: /Developer/Examples/Ruby/DTrace/print_memory_usage.d To reproduce: 1. In one Terminal fire up an instance of irb so that dtrace can find the probes 2. In another: sudo dtrace -qs /Developer/Examples/Ruby/DTrace/print_memory_usage.d 3. In another, run any sizeable Ruby script and watch the crashes ensue. For example: # won't crash ruby -e '1000.times{1+2}' # will crash ruby -e '10000.times{1+2}' # will crash irb Here's the console output for the irb crash: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ 1.8/irb/extend-command.rb:93: [BUG] Segmentation fault ruby 1.8.6 (2007-06-07) [universal-darwin9.0] Abort trap And here's the stack trace: Exception Type: EXC_BAD_ACCESS (SIGABRT) Exception Codes: KERN_INVALID_ADDRESS at 0x000000007262694c Crashed Thread: 0 Thread 0 Crashed: 0 libSystem.B.dylib 0x92d7f47a __kill + 10 1 libSystem.B.dylib 0x92df6782 raise + 26 2 libSystem.B.dylib 0x92e05d3f abort + 73 3 libruby.1.dylib 0x000cdcbc rb_exc_new + 0 4 libruby.1.dylib 0x001346f3 rb_gc_mark_trap_list + 508 5 libSystem.B.dylib 0x92d7d97b _sigtramp + 43 6 ??? 0xffffffff 0 + 4294967295 7 libruby.1.dylib 0x00144c08 rb_mod_class_variables + 634 8 libruby.1.dylib 0x00145680 rb_class_path + 31 9 libruby.1.dylib 0x001458a8 rb_obj_classname + 91 10 libruby.1.dylib 0x000eddbb rb_gc_mark_maybe + 1394 11 libruby.1.dylib 0x000ee493 rb_newobj + 28 12 libruby.1.dylib 0x0010af8f rb_node_newnode + 28 13 libruby.1.dylib 0x0011c881 ruby_yyparse + 53250 14 libruby.1.dylib 0x0011dda2 ruby_yyparse + 58659 15 libruby.1.dylib 0x00134271 ruby_process_options + 1148 16 libruby.1.dylib 0x000e69dd rb_load + 847 17 libruby.1.dylib 0x000e70a8 rb_require_safe + 1117 18 libruby.1.dylib 0x000da636 rb_eval_string_wrap + 17759 19 libruby.1.dylib 0x000db24a rb_eval_string_wrap + 20851 20 libruby.1.dylib 0x000d84c5 rb_eval_string_wrap + 9198 21 libruby.1.dylib 0x000e6a47 rb_load + 953 22 libruby.1.dylib 0x000e70a8 rb_require_safe + 1117 23 libruby.1.dylib 0x000da636 rb_eval_string_wrap + 17759 24 libruby.1.dylib 0x000db24a rb_eval_string_wrap + 20851 25 libruby.1.dylib 0x000d84c5 rb_eval_string_wrap + 9198 26 libruby.1.dylib 0x000e7388 rb_load_protect + 298 27 libruby.1.dylib 0x000e73b9 ruby_exec + 22 28 libruby.1.dylib 0x000e73e5 ruby_run + 42 29 ruby 0x00001fff 0x1000 + 4095 30 ruby 0x00001fa6 start + 54 Needless to say, I can't run the application that I'd like to profile either. The same crashes occur when trying to use the "object-free" probe from inside Apple's Instruments GUI. Can anybody else repro this or is there something fishy with my system? Cheers, Wincent