[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00920] Re: dtoa SEGV



青野です。こんばんは。

<86y9a9g6kz.wl@XXXX>の記事において
hiroo@XXXXさんは書きました。

>> すみません。こっちは jserver の方をひと区切りつけてから手をつける
>> つもりです。
>> % それまでに解決していると嬉しいですが :p

いろいろ忙しいので解決までたどり着けるといいのですが…。
#積み残しの課題もいろいろあるのですが、そちらも手付かず。
#小野さんのパッチを見る時間がほしい…。

>> > >> ※ コード中に適度に assert があるべきだと思う。
>> 
>> > 御意。いまどきのソフトとしては想定外の入力ごときで落ちては
>> > いけないのです(単なる私見)。
>> 
>> FreeWnn の source を見ていると、私の拙いプログラミングの知識で見ても
>>  (見ると?) invariant 条件のチェックはかなり怪しく感じます。
>> dtoa に 頻度ファイル食わせると、Wnn Malloc Error とか (エラーメッセー
>> ジは不正確です) いって落ちるとか、jserver で realloc 使っているところ
>> はエラー処理を一応はしているものの、realloc は失敗しないという期待の
>> もと書かれているように思えるとか。

元々のjserverのパーミッション(ユーザwnnにsetuidされている) 
なら誰でも起動できるのであまり問題にならないのですが、最近
は(RedHat Linuxも含めて?)そうなってないパッケージが出てき
ているのでもうちょっと安定性がほしい所です。
#どの辺りを直すとよいのかはまだ分かりません。

>> > - jserverにSIGSEGV のハンドラをつけましょうか?
>> > #基本的にSIGSEGVしましたよ、以上のことは記録できないでしょ
>> > #う。
>> 
>> あまり意味はないと思います。
>> -g2 でコンパイルしていただいた上で、core が出来れば十分と思います。

開発なんかしない人に対してはいつ落ちたか知らせるために有効
かもしれないですね。
#それ以上の意味は持たせられませんが。

>> > - (currentを使っている場合は)gdb jserverで、
>> > [freewnn:00896] を参考にforkしないようにした上でクラッシュ
>> > するまで(continueで)進めた上でbacktraceとっていただく、と
>> > いうのはできますか。
>> 
>> core を backtrace って出来ませんでしたっけ?

もちろんできます。ただcoreファイルができるディレクトリが不
定(というか、そのファイルを実行したディレクトリでしたっけ) 
なので探すのがやや面倒かな、と思うので…好みの問題です。
----
青野智樹	(aono@XXXX)
Personal opinion only..