This project is closed and read-only.
Feature #3930
closedtestsuite failed in sigsegv, it aborts after rb_f_sleep
Description
=begin
the faulting ruby function was sleep(0.1)
gdb
set args ruby sample/test.rb
....
cropped¶
sample/test.rb:signal
Breakpoint 1, rb_f_sleep (argc=0x1, argv=0xb900f8) at process.c:3325
3325 {
(gdb) n
3328 beg = time(0);
(gdb)
3329 if (argc == 0) {
(gdb)
3328 beg = time(0);
(gdb) c
Continuing.
.ok 1 (sample/test.rb:1742:in `
Breakpoint 1, rb_f_sleep (argc=0x1, argv=0xb900dc) at process.c:3325
3325 {
(gdb) n
3328 beg = time(0);
(gdb)
3329 if (argc == 0) {
(gdb)
3328 beg = time(0);
(gdb)
3329 if (argc == 0) {
(gdb)
3332 else if (argc == 1) {
(gdb)
3333 rb_thread_wait_for(rb_time_interval(argv[0]));
(gdb)
Program received signal SIGSEGV, Segmentation fault.
0x77b66502 in msvcrt!_abnormal_termination ()
from /cygdrive/c/WINDOWS/system32/msvcrt.dll
(gdb)
Single stepping until exit from function msvcrt!_abnormal_termination,
which has no line number information.
0x7c968574 in ntdll!LdrEnumerateLoadedModules ()
from /cygdrive/c/WINDOWS/system32/ntdll.dll
(gdb) bt
#0 0x7c968574 in ntdll!LdrEnumerateLoadedModules ()
from /cygdrive/c/WINDOWS/system32/ntdll.dll
#1 0x0022f614 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
actually it halted while ruby vm interpreter increases its pc and get context of this thread.
=end
Files
Updated by jojelino (jojelino _) almost 16 years ago
=begin
oh, i must mention that this error is gone by disabling compiler optimization -O
so there would be some glitches such that compiler think some instruction is able to omitted or reordered... which introduces sigsegv...
above sigsegv is from i686-pc-mingw32-gcc 4.6.0 20101011.
it is recommended to add extra code so that compiler can be acknowledged from it.
=end
Updated by naruse (Yui NARUSE) almost 16 years ago
- Status changed from Open to Third Party's Issue
=begin
Hmm, I think this is a GCC's bug.
=end