>>>>> "T" == Tanaka Akira <akr / m17n.org> writes:

T> +#ifdef __GNUC__

 perhaps not a good idea

T> +    memset(last_gc_stacktrace, 0, sizeof(last_gc_stacktrace));
T> +    if ((last_gc_stacktrace[0] = __builtin_return_address(0)) == main_return_address) goto gc_stacktrace_done;
T> +    if ((last_gc_stacktrace[1] = __builtin_return_address(1)) == main_return_address) goto gc_stacktrace_done;

uln% gdb --quiet ./miniruby
Using host libthread_db library "/lib64/libthread_db.so.1".
(gdb) r lib/fileutils.rb
Starting program: /opt/ts/ruby/r190/tmp/ruby/miniruby lib/fileutils.rb

Program received signal SIGSEGV, Segmentation fault.
0x000000000042dab6 in garbage_collect () at gc.c:1474
1474        if ((last_gc_stacktrace[1] = __builtin_return_address(1)) == main_return_address) goto gc_stacktrace_done;
(gdb) c
Continuing.
lib/fileutils.rb:1132: [BUG] Segmentation fault
ruby 1.9.0 (2005-01-21) [x86_64-linux]


Program received signal SIGABRT, Aborted.
0x0000002a95a35af9 in kill () from /lib64/libc.so.6
(gdb) 



Guy Decoux