(toppers-users 3983) Re: JSP1.4.4の不具合 (原因究明?)

suikan suikan7 @ yahoo.co.jp
2012年 6月 12日 (火) 23:01:58 JST


こんにちは。

試してみましたが私の環境では eof()を使うと無限ループになってしまいまし
た。原因はわかりませんが、
eof()は真にならないようです。

修正ですが、添付の修正でどうやらうまく動きます。

酔漢

(2012/06/12 7:26), suikan wrote:
> おはようございます
>
> 邑中さん
>
> コメントありがとうございます。eof()についてはもう少しつついてからもう一
> 度報告します。
>
> 酔漢
>
>
> (2012/06/11 10:15), Masaki Muranaka wrote:
>> おはようございます.
>>
>> istream.eof() は,ファイルの最後に達していてさらに読み込んだ時に true になります.
>> なので,g++のデグレードではなく,今までの parse.cpp が動いていたほうがおかしかった
>> のではないかという気がします.(きちんと追いきれていないかもしれませんが)
>>
>> 修正案は添付頂いたパッチの通りでOKのはずです.
>> ですが,個人的な好みですが,
>>> 			if( ch == -1 )
>>>>>                       if( current->stream->eof() )
>> のほうが意味が掴みやすいかなとは思います.
>>
>> 2012年6月10日 21:32 suikan <suikan7 @ yahoo.co.jp>:
>>> みなさんこんにちは、酔漢です。
>>>
>>> 標記の件ですが、原因らしきものに当たりました。
>>>
>>> 環境 : Ubuntu 12.04, g++ 4.6.3
>>> ソース : jsp 1.4.4-full ( UTF8に変換済み )
>>> ターゲット linux
>>>
>>> 上記環境で jsp/configure -C linux を実行した後、 make depend すると既に
>>> 報告されているとおりcfgが暴走します(実行状態から返ってこなくなる)。
>>>
>>> デバッガで追跡したところ、.cfg ファイルの末尾で無限ループに陥っていまし
>>> た。どうやら、istream.eof() == FALSEかつ ch==-1 となるライブラリのよう
>>> ですが、parser.cpp がそれに対応できておらず、ファイル末尾を検出できない
>>> ことが原因のようです。
>>>
>>> 添付ファイルのような変更を行ったところ、とりあえずはsample1のmake depが
>>> 通るようになりました。
>>>
>>> 恥ずかしながら c++ のライブラリには精通していないため、皆さんの検証をお
>>> 願いします。
>>>
>>> 酔漢
>>>
>>> (2012/06/06 22:49), suikan wrote:
>>>> みなさんこんにちは。酔漢です。
>>>>
>>>> 邑中さんが報告されている cfg の暴走の件ですが、Ubuntu 12.04 LTS でも同じ
>>>> と思われる問題が発生します。g++ のバージョンは 4.6.3です。
>>>>
>>>> TOPPERS/JSP for Blackfinをバージョンアップしたいのですが、頭を抱えています。
>>>>
>>>> 酔漢
>>>>
>>>> (2012/01/21 14:53), Masaki Muranaka wrote:
>>>>> みなさま:
>>>>> こんにちは.
>>>>>
>>>>> 下記の件,Ubuntu 10.04.3 TLS と同 11.10 で動作チェックをしたところ,
>>>>> 11.10 の共有ライブラリと jsp-1.4.4 の cfg での組み合わせで発生することが判りました.
>>>>> (10.04.3 TLS では再現しません.また10.04.3 LTS で静的リンクした cfg は 11.10でも動作します.)
>>>>>
>>>>> 問題発生の箇所がソースコードのどの部分に対応するのかは現時点では不明です.
>>>>> また,他のディストリビューションでの発生有無も同じく不明です.
>>>>>
>>>>> とりいそぎの対応策として,10.04.3 LTS
>>>>> 上でビルドしたバイナリを下記の場所に置きました.(TOPPERSライセンスの報告条項を満たす手間を省くため,ソースコードも含んでいます.)
>>>>> おそらくカーネルリビジョンが同じ他のディストリビューションでも動作すると思います.
>>>>>
>>>>> https://bitbucket.org/monaka/jsp_core/get/cfg-binary-ubuntu-32bit.zip
>>>>> https://bitbucket.org/monaka/jsp_core/get/cfg-binary-ubuntu-64bit.zip
>>>>>
>>>>> TOPPERS公式のものではないことに留意してください.
>>>>> また,上記バイナリを適用した結果に対して,私および私の所属組織は一切の責任を取りません.
>>>>> 軽微な修正提案については,
>>>>> https://bitbucket.org/monaka/jsp_core/issues にいただければ検討します.
>>>>> 追加の個別サポートが必要な場合は,メールにてご相談ください.
>>>>>
>>>>> 2011年12月22日7:09 Masaki Muranaka <monamour @ monaka.org>:
>>>>>> また,sample1 のビルドを試みると,cfg が暴走します.
>>>>> (snip)
>>>>>> 再現条件はまだよく判っていません.
>>>>>> GCC4.6.1固有の問題なのか,このg++のビルドのみの問題なのか….
>>> --
>>> 酔漢
>>> 組み込みBlog              http://d.hatena.ne.jp/suikan+embedded/
>>> TOPPERS/ASP for LPC       http://sourceforge.jp/projects/toppersasp4lpc/
>>> Blackfin Blog             http://d.hatena.ne.jp/suikan+blackfin/
>>> TOPPERS/JSP for Blackfin  http://sourceforge.jp/projects/toppersjsp4bf/
>>>
>>>
>


-- 
酔漢
組み込みBlog              http://d.hatena.ne.jp/suikan+embedded/
TOPPERS/ASP for LPC       http://sourceforge.jp/projects/toppersasp4lpc/
Blackfin Blog             http://d.hatena.ne.jp/suikan+blackfin/
TOPPERS/JSP for Blackfin  http://sourceforge.jp/projects/toppersjsp4bf/


-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: diff_base_parser_cpp.txt
URL:  <http://www.toppers.jp/pipermail/users/attachments/20120612/cb05fe28/attachment.txt>