[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]  


バグ報告

バグ報告は、 GNU CCの信頼性を向上させるのに重要な役割を果しています。

バグを見つけた場合、 まずそれが既に発見されているバグかどうかを調べてください。 See section GNU CC の既知の不具合原因。 発見されていないバグであれば、 その問題を報告する必要があります。

バグを報告することで、 その問題の解決につながることもありますし、 何の解決にもならないこともあるでしょう。 (解決しない場合は、 サービス・ディレクトリを調べてみてください。 section GNU CCに関する援助の入手方法を参照してください。) いずれの場合でも、 バグ報告の主な役割は、 次のバージョンのGNU CCをより良いものにすることによって、 コミュニティ全体を支援することにあります。 バグを報告することによって、 GNU CCの保守作業に貢献することになるのです。

保守作業は負荷が大きいので、 すべてのバグ報告に回答することはできません。 しかし、 バグがまだ修正されていない場合には、 バグの報告者にパッチを送付して、 バグが解消されるかどうか尋ねることになるでしょう。

バグ報告が、 その目的とするところを達成することができるようにするためには、 バグ修正を行うための情報を必ず提供しなければなりません。

本当にバグを見つけたのかどうかを知る方法

発見した現象がバグかどうかよくわからない場合には、 以下のガイドラインを参照してください。

バグの報告先

GNU Cのバグは、 `bug-gcc@prep.ai.mit.edu'に報告してください。

GNU C++のバグは、 `bug-g++@prep.ai.mit.edu'に報告してください。 ただし、 バグがC++クラス・ライブラリのlibg++に関連する場合は、 `bug-lib-g++@prep.ai.mit.edu'に報告してください。 どちらであるか確信が持てない場合は、 両方のメーリング・リストにバグを報告しても構いません。

`help-gcc@prep.ai.mit.edu'やニュースグループ`gnu.gcc.help'にバグ報告を送ることはしないでください。 GNU CCユーザのほとんどは、 バグ報告を受け取りたいと考えてはいません。 バグ報告を受け取りたいと思っている人は、 `bug-gcc'`bug-g++'の配信を受けるようにしているはずです。

メーリング・リストの`bug-gcc'`bug-g++'には、 リピータとして機能する`gnu.gcc.bug'`gnu.g++.bug'というニュースグループがあります。 このメーリング・リストとニュースグループは、 全く同一のメッセージを配信しています。

メーリング・リストではなくニュースグループにバグ報告を流そうと考える人がよくいます。 これはうまく機能するように見えますが、 1つ重大な問題があります。 ニュースグループへの投稿では、 送信者へのメール・パスが分からないことがあります。 したがって、 もっと多くの情報が必要になったときに、 バグの報告者と連絡を取ることができません。 こういうことがあるので、 バグ報告は常にメーリング・リストに出すべきです。

最後の手段として、 バグ報告を紙に書いて下記に郵送するという方法があります。(15)

GNU Compiler Bugs
Free Software Foundation
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA

バグの報告方法

役に立つバグ報告を行うための最も根本的な原則は、 すべての事実を報告することです。 ある事実を書くべきか省くべきかよく分からない場合は、 書くようにしてください。

事実が省略されてしまうことがよくありますが、 これはバグ報告者が自分には問題の原因は既に分かっていると考え、 いくつかの細かい点は関係がないと仮定してしまうからです。 したがって、 例の中で使った変数の名前などは重要ではないと、 報告者は考えます。 おそらくそうかもしれません。 しかし、 完全にそうであるとも言い切れません。 メモリの参照がデタラメな場所を指しているというバグで、 それがたまたまメモリ上においてその名前が置かれている箇所から値を取り出しているということがあるかもしれません。 名前が異なれば、 そこの内容は、 バグが存在するにもかかわらずコンパイラが正しく動作してしまうような値になるかもしれません。 このようなことがないよう、 特定の完全な実例を提供してください。 バグの報告者にとっては、 このようにするのが最も簡単なはずであり、 かつ、 それが最も役に立つのです。

バグ報告の目的は、 未知のバグを修正することができるようにするという点にあるということを頭に入れておいてください。 そのバグが既に発見されているものであればどうなるのかということは、 重要ではありません。 ですから、 バグ報告は常に、 そのバグは未知のものであると想定して書いてください。

時々、 2、3の大雑把な事実だけを記述して、 「何か思い当ることはありますか?」と聞いてくる人がいます。 このようなバグ報告をもらっても、 バグ・フィックスの助けにはなりません。 ですから、 このような報告は無駄です。 このような報告を受け取ると、 私たちは、 調査を行うために十分な詳細情報を送るよう、 報告者に返信します。 最初からこのような詳細情報を送ることによって、 処理をはかどらせることができるでしょう。

バグ報告にはすべての情報を含めるようにしてください。 私たちがさらに情報を要求することになった場合には、 返信の中に、 不足していた情報だけでなく、 以前に送った情報もすべて含めるのが最良の方法です。

バグは、 1つずつ別のメールで報告してください。 こうすることにより、 どのバグがフィックスされたか追跡したり、 バグ報告を保守担当者に転送することが容易になります。

バグ報告のどの部分も、 `uuencode'などのプログラムを使用して、 圧縮したり、 エンコードしたりしないでください。 バグの処理が遅れる原因となります。 大きなファイルを複数提出する必要がある場合は、 `shar'を使用してください。 そうすれば、 解凍プログラムを実行することなくメッセージを読むことができます。

バグを修正できるようにするためには、 報告者は以下の情報をすべて含めるべきです。

以下に、 バグ報告に必要ではない情報をいくつか列挙します。

GNU CCに対するパッチの送付

GNU Cコンパイラのバグを修正したり改良したりしたいということであれば、 とても助かります。 提案する修正は、 バグ報告のメーリング・リストbug-gcc@prep.ai.mit.eduに送ってください。

以下のガイドラインに従って送信してもらえれば、 私たちはパッチを効率的に調べることができます。 ガイドラインに従ってもらえなくても、 情報は役に立つでしょうが、 余分な作業を発生させることになります。 GNU Cの保守作業は、 最良の状況においてもたいへんな作業量ですので、 皆さんが手助けしようとする際に最善の努力を払ってくれるのでなければ、 続けていくことができません。


[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]