In message <_A57@freyasx.ML_> on 09/27/05(22:59:30) you 辻 智之 <pgqaaappw-jmfhzlypuedw.ml@delegate.org> wrote: |>などとしてやると、どこで異常終了しているかわかりますので、結果を見せて |>いただければ、対処できるかも知れません。 | |$ gdb fsearch.cgi ... |Program received signal SIGSEGV, Segmentation fault. |0x401092fc in _IO_default_uflow (fp=0x806eee4) at genops.c:423 |423 genops.c: No such file or directory. | in genops.c ということですので、最終的には、そのバージョンのGccの、genops.c という ファイルの、423 行目で死んでいるということのようですね。 |(gdb) bt |#0 0x401092fc in _IO_default_uflow (fp=0x806eee4) at genops.c:423 |#1 0x40049b0b in streambuf::uflow () from /usr/lib/libstdc++-libc6.2-2.so.3 |#2 0x4010849f in __uflow (fp=0x806eee4) at genops.c:377 |#3 0x40103d1f in _IO_getc (fp=0x806eee4) at getc.c:41 |#4 0x0805109f in sout_flush () |#5 0x0804e9fb in main () |#6 0x400ab336 in __libc_start_main (main=0x804e960 <main>, argc=1, |ubp_av=0xbffff384, init=0x8049f6c <_init>, | fini=0x8063de0 <_fini>, rtld_fini=0x4000d2fc <_dl_fini>, stack_end=0xbffff37c) | at ../sysdeps/generic/libc-start.c:129 freya/src/fsearch.cgi.cc の main() の中から呼ばれている、String.ccの中の sout_flush() から呼んでいる、sout.get() で死んでいるようです。 ここは、stringstream にためこんだ出力を、stdout に吐き出しているところ です。 そういえば、Gcc3 からは strstream が無くなった?ので、stringstream に 置き換えたのですが、Gcc2.9 はその移行期で、実装が不安定だったようです。 実際、オリジナルFreya (Gcc2) から FreyaSX (Gcc3) への移植は MacOSX 上の Gcc3 で行ったのですが、移植後の版を RedHat7.1 の Gcc2.96-81 で試したら 動作せず、適当に回避した記憶があります。 String.cc の 94 行目にある、 if(sout.tellp() <= 0){ // stringstream seems be implemented incompletely というのがそれです。stringstream の tellp() がちゃんと実装されているか どうかで、stringstream の実装状態を占うものですが、その後の2.96の過程で、 tellp() が治ったけれどget() がまだおかしい、と言う段階があるのかも知れ ません。ですので、この行を、 if(1){ のように置き換えれば、問題を回避できるかも知れません。 そもそも、strstream/stringstream を使う必要があるのか、についても疑問は あります。cout << variable << constant << flush ... みたいに書けるため ちょっと見にカッコ良く、出力がファイルかメモリでも同一コードで対応できる のが魅力ではあるのですが、出力フォーマットとアルゴリズムが不可分になって しまう面ではいかがなものかと思います。自分としては、言語仕様としての C++にはほとんど魅力を感じていないので、FreyaSX も、C++ で記述した部分は 縮小していくことになると思います。 D G ┌─┐┬┌──┬┐ //\^^ ( - ); {Do the more with the less -- B. Fuller} ├─┤│└─┐│ / 877m\_< >_ <URL:http://www.delegate.org/delegate/> ┴ └┴──┘┴────────────────────────────── 佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)