From: Takahiro Maebashi Date: 1997-12-08T22:35:11+09:00 Subject: [ruby-dev:983] Re: [ruby-list:5600] Re: tcltklib error (Re: wave viewer) 前橋です。ruby-dev にしました。 From: matz@netlab.co.jp (Yukihiro Matsumoto) Subject: [ruby-list:5600] Re: tcltklib error (Re: wave viewer) Date: Mon, 8 Dec 97 18:53:39 +0900 > |ところが、ruby-list:4457 の重弘さんオリジナルの tcltklib.c を持ってき > |て 1.1b0 のものと入れ替えてコンパイルしたところ、問題なく動くのです。 > |diff をとってみると、コメント以外に少し変更があるようです。というわけ > |で 1.1b0 になって変更された部分が(も)怪しいのではないかと。 > > ありがち.再現するスクリプトが入手できると助かるのですが. > # 自分でも確かめてみよう 再現するスクリプトをつくりました。内容のない変なスクリプトですが、コメ ント行を削るだけで動くようになったり動かなくなったりという不可解な挙動 をします。ruby-1.1b0 では Segmentation fault, 重弘さん版の tcltklib.c に入れ替えるとちゃんと動きます(窓が1個出るだけですが)。こちらでは FreeBSD-2.2.1 と 2.2.2 の 2台のマシンで試しましたが 100% 再現します。 落ちたときの状態をつけておきます。 % ruby xyz /usr/local/lib/ruby/tk.rb:7: [BUG] Segmentation fault Abort % gdb ruby GDB is free software and you are welcome to 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. GDB 4.16 (i386-unknown-freebsd), Copyright 1996 Free Software Foundation, Inc... (gdb) run xyz Starting program: /home/maebashi/archives/ruby/ruby-1.1b0/ruby xyz Program received signal SIGSEGV, Segmentation fault. 0x81c8fed in ?? () from /usr/local/lib/libtcl76jp.so.1.0 (gdb) where #0 0x81c8fed in ?? () from /usr/local/lib/libtcl76jp.so.1.0 #1 0x8104060 in ?? () from /usr/local/lib/ruby/i386-freebsd2.2.2/tcltklib.so #2 0x8103803 in ?? () from /usr/local/lib/ruby/i386-freebsd2.2.2/tcltklib.so #3 0x6a6e in dln_load ( file=0x96380 "/usr/local/lib/ruby/i386-freebsd2.2.2/tcltklib.so") at dln.c:1196 #4 0xf0b5 in f_require (obj=529116, fname=489996) at eval.c:3775 #5 0xdabc in rb_call (class=531596, recv=529116, mid=7153, argc=1, argv=0xefbfcf48, scope=1) at eval.c:3010 #6 0xb350 in rb_eval (self=529116, node=0x73894) at eval.c:1718 #7 0xa616 in rb_eval (self=529116, node=0x737f4) at eval.c:1350 #8 0x90bf in eval_node (self=529116) at eval.c:740 #9 0xec46 in f_load (obj=529116, fname=473516) at eval.c:3645 #10 0xf171 in f_require (obj=529116, fname=473516) at eval.c:3794 #11 0xdabc in rb_call (class=531596, recv=529116, mid=7153, argc=1, argv=0xefbfd29c, scope=1) at eval.c:3010 #12 0xb350 in rb_eval (self=529116, node=0x77a98) at eval.c:1718 #13 0xa616 in rb_eval (self=529116, node=0x777a0) at eval.c:1350 #14 0x90bf in eval_node (self=529116) at eval.c:740 #15 0x91f6 in ruby_run () at eval.c:773 #16 0x15a1 in main (argc=2, argv=0xefbfd51c, envp=0xefbfd528) at main.c:37 (gdb) begin 755 xyz.gz M'XL(".S9BS0``WAY>@"UE<].Q"`0A^_S%&-W#VNBU/6_!Q,?P)-IXL4+W6*< M%*%2UK;[]`)5Z@/L_-(TS``?IR^S.L%RW[M2VYW494VF=/MZPO,!P*FO/3F% MA6\+@!7`3LN^QUDIP3'AEC.\^#M>_#TO_H$7O[TX/C\]4/^% M2=S,9S(W\YG4S7PF=S.?2=[,9[(W\YGTS7PF?S.?2>#%+PZ#.T?&8]%[Z;P0 CXLV$X;\>R(2[8?2GJ5ZUXE.2T=9V85R/Y.$'N7T71D<(``"# ` end