From: Takaaki Tateishi Date: 2002-08-06T18:49:44+09:00 Subject: [ruby-dev:17944] Re: ruby-bugs-ja incoming/277 At Tue, 6 Aug 2002 18:06:06 +0900, nobu.nakada@nifty.ne.jp wrote: > > gc.cを-O2でコンパイルするとSegmentation faultとなりま > > すが,-O0でコンパイルすると正常にmake installできるよう > > です.(試した限りですが…) > > SEGVしたときのrb_gc_stack_startの値とe_scriptのアドレスは、どう > なってるでしょうか。 -O2でコンパイルしてminirubyをgdbにかけると次のようになりました. (gdb) b ruby.c:719 Breakpoint 1 at 0x80ad696: file ../ruby.c, line 719. (gdb) run -rftools -e "p 1" Starting program: /mnt/hda6/home/ttate/work/ruby/src/ruby/build-gcc-3.1.x/./miniruby -rftools -e "p 1" Breakpoint 1, proc_options (argc=0, argv=0xbfffedf4) at ../ruby.c:719 719 if (e_script) { (gdb) p (void*)e_script $1 = (void *) 0x401e3924 (gdb) p rb_gc_stack_start $2 = (VALUE *) 0xbfffec04 (gdb) n 720 require_libraries(); (gdb) n 721 rb_compile_string(script, e_script, 1); (gdb) p e_script $3 = 1075722532 (gdb) p (void*)e_script $4 = (void *) 0x401e3924 (gdb) p rb_gc_stack_start $5 = (VALUE *) 0xbfffec04 (gdb) n Program received signal SIGSEGV, Segmentation fault. lex_get_str (s=1075741232) at ../parse.y:2417 2417 if (*end++ == '\n') break; (gdb) p rb_gc_stack_start $6 = (VALUE *) 0xbfffec04 -- Takaaki Tateishi