[Reference:<_A58@freyasx.ML_>]
Newsgroups: mail-lists.freyasx
[FreyaSX] Re: fsearch.cgi 実行時 Segmentation fault
On 09/28/05(09:38) you ysato@delegate (Yutaka Sato) wrote
in <_A58@freyasx.ML_>
|そういえば、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){
|のように置き換えれば、問題を回避できるかも知れません。
これで効果があったかどうかわからないのですが、ともかく、0.99.12 では
[String.cc]
#ifdef __GNUC__ && __GNUC__ < 3
#define NOSTRINGSTREAM 1
#else
...
のように Gcc3 以前を判定して、stringstream の get() を使わないように
しました。
D G
┌─┐┬┌──┬┐ //\^^ ( - ); {Do the more with the less -- B. Fuller}
├─┤│└─┐│ / 877m\_< >_ <URL:http://www.delegate.org/delegate/>
┴ └┴──┘┴──────────────────────────────
佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)
|