statements. This hinted some trouble with thread support so I recompiled using
--disable-pthread
and the troubles have disappeared. I wonder if this is an issue from Ruby's side
or on Cygwin's side. I am noticing other segfaults being reported on other platforms
(e.g linux) due to pthreads support also.
statements. This hinted some trouble with thread support so I
recompiled using
–disable-pthread
and the troubles have disappeared. I wonder if this is an issue from
Ruby’s side
or on Cygwin’s side. I am noticing other segfaults being reported on
other platforms
(e.g linux) due to pthreads support also.
and sure enough it segfaults, here's another backtrace
% gdb ruby
GNU gdb 6.3.50_2004-12-28-cvs (cygwin-special)
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 "i686-pc-cygwin"...
(gdb) run test.rb
Starting program: /usr/local/bin/ruby.exe test.rb
Program received signal SIGSEGV, Segmentation fault.
0x10023952 in cygruby19!Init_load () from /usr/local/bin/cygruby19.dll
(gdb) bt #0 0x10023952 in cygruby19!Init_load () from /usr/local/bin/cygruby19.dll #1 0x10023984 in cygruby19!Init_load () from /usr/local/bin/cygruby19.dll #2 0x10033d76 in rb_gc_force_recycle () from /usr/local/bin/cygruby19.dll #3 0x100338c4 in rb_gc_mark () from /usr/local/bin/cygruby19.dll #4 0x10034130 in rb_gc_mark_frame () from /usr/local/bin/cygruby19.dll #5 0x100327c8 in ruby_xmalloc () from /usr/local/bin/cygruby19.dll #6 0x1002383d in cygruby19!Init_load () from /usr/local/bin/cygruby19.dll #7 0x1001f8b2 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #8 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #9 0x10019a5f in rb_alias () from /usr/local/bin/cygruby19.dll #10 0x10024fe5 in rb_proc_arity () from /usr/local/bin/cygruby19.dll #11 0x100187df in rb_alias () from /usr/local/bin/cygruby19.dll #12 0x1001f7b1 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #13 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #14 0x10019ce2 in rb_alias () from /usr/local/bin/cygruby19.dll #15 0x100189bb in rb_alias () from /usr/local/bin/cygruby19.dll #16 0x10018e82 in rb_alias () from /usr/local/bin/cygruby19.dll #17 0x1001f7b1 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #18 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #19 0x10019ce2 in rb_alias () from /usr/local/bin/cygruby19.dll #20 0x1001f7b1 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #21 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #22 0x10019ce2 in rb_alias () from /usr/local/bin/cygruby19.dll #23 0x1001a975 in rb_alias () from /usr/local/bin/cygruby19.dll #24 0x100185ad in rb_alias () from /usr/local/bin/cygruby19.dll #25 0x1001f7b1 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #26 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #27 0x10019ce2 in rb_alias () from /usr/local/bin/cygruby19.dll #28 0x10017e32 in rb_alias () from /usr/local/bin/cygruby19.dll #29 0x1001f7b1 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #30 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #31 0x10019a5f in rb_alias () from /usr/local/bin/cygruby19.dll #32 0x10018e82 in rb_alias () from /usr/local/bin/cygruby19.dll #33 0x10019083 in rb_alias () from /usr/local/bin/cygruby19.dll #34 0x10018598 in rb_alias () from /usr/local/bin/cygruby19.dll #35 0x1001f7b1 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #36 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #37 0x10019ce2 in rb_alias () from /usr/local/bin/cygruby19.dll #38 0x10018e82 in rb_alias () from /usr/local/bin/cygruby19.dll #39 0x10019083 in rb_alias () from /usr/local/bin/cygruby19.dll #40 0x1001d623 in rb_iterator_p () from /usr/local/bin/cygruby19.dll #41 0x1002a333 in rb_thread_create () from /usr/local/bin/cygruby19.dll #42 0x1002a041 in rb_thread_group () from /usr/local/bin/cygruby19.dll #43 0x1002a4a6 in rb_thread_create () from /usr/local/bin/cygruby19.dll #44 0x1002c2cb in rb_throw () from /usr/local/bin/cygruby19.dll #45 0x1001f190 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #46 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #47 0x10019a5f in rb_alias () from /usr/local/bin/cygruby19.dll #48 0x100189bb in rb_alias () from /usr/local/bin/cygruby19.dll #49 0x1001f7b1 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #50 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #51 0x10019ce2 in rb_alias () from /usr/local/bin/cygruby19.dll #52 0x10024eaa in rb_proc_arity () from /usr/local/bin/cygruby19.dll #53 0x100187df in rb_alias () from /usr/local/bin/cygruby19.dll #54 0x1001a9e0 in rb_alias () from /usr/local/bin/cygruby19.dll #55 0x1001d623 in rb_iterator_p () from /usr/local/bin/cygruby19.dll #56 0x1001da03 in rb_yield () from /usr/local/bin/cygruby19.dll #57 0x10002aa6 in rb_ary_each () from /usr/local/bin/cygruby19.dll #58 0x1002c2ff in rb_throw () from /usr/local/bin/cygruby19.dll #59 0x1001f190 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #60 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #61 0x10019a5f in rb_alias () from /usr/local/bin/cygruby19.dll #62 0x100189bb in rb_alias () from /usr/local/bin/cygruby19.dll #63 0x10018e82 in rb_alias () from /usr/local/bin/cygruby19.dll #64 0x10018598 in rb_alias () from /usr/local/bin/cygruby19.dll #65 0x1001d623 in rb_iterator_p () from /usr/local/bin/cygruby19.dll #66 0x10018ddb in rb_alias () from /usr/local/bin/cygruby19.dll
---Type <return> to continue, or q <return> to quit--- #67 0x1001f7b1 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #68 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #69 0x10019a5f in rb_alias () from /usr/local/bin/cygruby19.dll #70 0x100189bb in rb_alias () from /usr/local/bin/cygruby19.dll #71 0x1001f7b1 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #72 0x1001fcc9 in rb_with_disable_interrupt () from /usr/local/bin/cygruby19.dll #73 0x10019a5f in rb_alias () from /usr/local/bin/cygruby19.dll #74 0x100155a3 in ruby_init () from /usr/local/bin/cygruby19.dll #75 0x10015b34 in ruby_cleanup () from /usr/local/bin/cygruby19.dll #76 0x10015b6b in ruby_exec () from /usr/local/bin/cygruby19.dll #77 0x10015ba6 in ruby_run () from /usr/local/bin/cygruby19.dll #78 0x0040109a in main (argc=2, argv=0x100f2fc8, envp=0x100f00a8) at main.c:38
(gdb)
With such a name, ruby can only segfault and it do this just to be
pleasant with you
Here's a gdb stacktrace
Well, probably it was not compiled with the right option.
With a correct backtrace, probably you'll not see such calls
/usr/local/bin/cygruby19.dll #40 0x10019a5f in rb_alias () from
/usr/local/bin/cygruby19.dll #41 0x100189bb in rb_alias () from
/usr/local/bin/cygruby19.dll #42 0x1001a975 in rb_alias () from
/usr/local/bin/cygruby19.dll #43 0x10019083 in rb_alias () from
/usr/local/bin/cygruby19.dll
this is probably rb_call() rather than rb_alias() : this means that gdb has
problem to give the correct backtrace