From: Hidetoshi NAGAI Date: 2003-09-13T07:05:24+09:00 Subject: [ruby-dev:21380] Re: $SAFE=4 でのautoload 永井@知能.九工大です. From: nobu.nakada@nifty.ne.jp Subject: [ruby-dev:21379] Re: $SAFE=4 でのautoload Date: Sat, 13 Sep 2003 02:03:57 +0900 Message-ID: <200309121703.h8CH3u8R016627@sharui.nakada.kanuma.tochigi.jp> > [ruby-dev:21375]を最新に合わせてみました。 適用すると, -------------------------------------------------------------- gcc -g -O2 -I. -I. -c sprintf.c sprintf.c: In function `rb_f_sprintf': sprintf.c:136: argument `argv' doesn't match prototype intern.h:395: prototype declaration make: *** [sprintf.o] エラー 1 -------------------------------------------------------------- となりました. ですので,intern.h で rb_f_sprintf の定義から const を外して make すると,例えば irb などで Segmentation Fault でこけます. -------------------------------------------------------------- (gdb) run -r e2mmap -r irb/init -r irb/context -r irb/extend-command Starting program: /usr/local/bin/ruby -r e2mmap -r irb/init -r irb/context -r irb/extend-command Program exited normally. (gdb) run -r e2mmap -r irb/init -r irb/context -r irb/extend-command -r irb/ruby-lex Starting program: /usr/local/bin/ruby -r e2mmap -r irb/init -r irb/context -r irb/extend-command -r irb/ruby-lex Program received signal SIGSEGV, Segmentation fault. 0x400e9ecb in chunk_alloc (ar_ptr=0x40198280, nb=136) at malloc.c:2990 2990 malloc.c: No such file or directory. in malloc.c (gdb) bt #0 0x400e9ecb in chunk_alloc (ar_ptr=0x40198280, nb=136) at malloc.c:2990 #1 0x400e9544 in __libc_malloc (bytes=129) at malloc.c:2811 #2 0x0806a0ac in ruby_xmalloc (size=129) at gc.c:108 #3 0x080a9225 in rb_str_buf_new (capa=8) at string.c:212 #4 0x080702e1 in appendline (fptr=0x8150bf0, delim=10, strp=0xbfffed38) at io.c:881 #5 0x0807048b in rb_io_getline_fast (fptr=0x8150bf0, delim=10) at io.c:994 #6 0x0807083d in rb_io_gets (io=1075458592) at io.c:1069 #7 0x08088f6f in lex_getline () at parse.y:2591 #8 0x0808b48d in ruby_yylex () at parse.y:2643 #9 0x08083f75 in ruby_yyparse () at /usr/lib/bison/bison.simple:573 #10 0x08088e1a in yycompile ( f=0x8150bc0 "/usr/local/lib/ruby/1.8/irb/ruby-lex.rb", line=1) at parse.y:2541 #11 0x08089078 in rb_compile_file ( f=0x8150bc0 "/usr/local/lib/ruby/1.8/irb/ruby-lex.rb", file=1075458592, start=1) at parse.y:2633 #12 0x080a5c75 in load_file ( fname=0x8150bc0 "/usr/local/lib/ruby/1.8/irb/ruby-lex.rb", script=0) at ruby.c:900 #13 0x080a5cd7 in rb_load_file ( fname=0x8150bc0 "/usr/local/lib/ruby/1.8/irb/ruby-lex.rb") at ruby.c:917 #14 0x0805d53d in rb_load (fname=1075458672, wrap=0) at eval.c:5778 #15 0x0805dd9f in load_rb (feature=1075458752, fname=1075458752) at eval.c:6051 #16 0x0805dc6d in require_internal (fname=1075496932) at eval.c:6004 #17 0x0805de70 in rb_require_safe (fname=1075496932, safe=0) at eval.c:6079 #18 0x0805df67 in rb_require (fname=0x811fbd8 "irb/ruby-lex") at eval.c:6105 #19 0x080a4e27 in require_libraries () at ruby.c:351 #20 0x080a5c5f in load_file (fname=0x80dbe7f "-", script=1) at ruby.c:897 #21 0x080a5cfe in load_stdin () at ruby.c:924 #22 0x080a5933 in proc_options (argc=0, argv=0xbffff950) at ruby.c:773 #23 0x080a6178 in ruby_process_options (argc=11, argv=0xbffff924) at ruby.c:1112 #24 0x080534cd in ruby_options (argc=11, argv=0xbffff924) at eval.c:1295 #25 0x08051ccd in main (argc=11, argv=0xbffff924, envp=0xbffff954) at main.c:49 #26 0x4009013f in __libc_start_main (main=0x8051cb0
, argc=11, ubp_av=0xbffff924, init=0x80510d4 <_init>, fini=0x80c3a00 <_fini>, rtld_fini=0x4000c770 <_dl_fini>, stack_end=0xbffff91c) at ../sysdeps/generic/libc-start.c:129 (gdb) -------------------------------------------------------------- 報告だけですみません. -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp