プロジェクト

全般

プロフィール

バグ #776

coil/tests/OSのテスト実行時エラー

kuriharaほぼ15年前に追加. 14年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2009/07/09
期日:
進捗率:

100%

予定工数:

説明

Ubunt-8.10にてsrc/lib/coil/tests以下のテストを実行するとOSのテストの際に"Segmentation fault"で異常終了する。

具体的には、coil/include/OS.hのGetOpt::operator()()内のgetopt()呼び出しのところでエラーが発生している。

Ubunt-8.04ではエラーにはならない。

リビジョンは1435。

履歴

#1 n-ando14年以上前に更新

  • 担当者n-ando にセット

#2 n-ando14年以上前に更新

  • 進捗率0 から 100 に変更

getopt(3)は引数の文字列配列の内容を変更するが、Ubuntu8.04とUbuntu8.10の間ではその処理方法が異なっている模様。
glibcのgetoptのソースを見る限りは、Ubuntu8.04とUbuntu8.10の間では根本的な違いはないことから、コンパイラのメモリの配置方法によるものではないかと推測される。
また、別の問題として、Ubuntu8.10のgetoptは、2回目以降の処理の問題があるように見受けられる。
getoptはグローバル変数を使用する仕様となっており、optindという変数を初期化することで、複数回の処理が実現できるようになっている。
しかしながら、これは、getoptの実装に強く依存するため、この方法自体POSIX汎用ではない。(FreeBSDではoptindに加えて、optresetという初期化フラグがグローバル変数として使用されている。)

以上の理由から、GetOptクラスをgetopt関数とは独立に実装することにする。

#3 n-ando14年以上前に更新

  • ステータス新規 から 終了 に変更

他の形式にエクスポート: Atom PDF