Doxygen latest release v1.5.9 - last update 14 Feb 2011

トラブルシューティング

既知の問題点:

  • ソースから doxygen をビルドする上での問題であれば、まずは こちらのセクション を読んでください。
  • Doxygen は本物のコンパイラではなく、単に字面を読み取るに過ぎません。 これは、ソースコードのエラーを見つけることはできませんし、 見つけようともしていないことを意味しています。
  • ありうるすべてのコードの断片をテストすることは不可能なので、 大いに起こりうることとして、C C++ のコードの一部が上手く処理できないケースがありえます。 そんなケースを見つけたときこちらへ送付してくだされば、doxygen の解析能力を あげることができます。尚、送られるコードは、調査範囲が絞りやすいように できるだけ小さくしてください。
  • 同じ名前のクラスや構造体、共用体が複数あると、doxygen はうまく働きません。 クラッシュはしませんが、ひとつを除いて他の同名のクラスを無視します。
  • 他のコマンドの引数の中では働かないコマンドがあります。 たとえばHTML リンク( <a href="...">...<a>)の中では 他のコマンド(他のHTMLコマンドを含め)は働きません。セクションわけするコマンドは 重要な例外です。
  • 括弧が冗長になると、doxygen が混乱することがあります。 例えば:
      void f (int);
    
    なら関数宣言として解析できますが、
      const int (a);
    
    とすると、intという名前の関数宣言ともとれます。 それは、構文しか解析できず、意味は解析できないからです。
      int *(a[20]);
    
    このように冗長な括弧が認識できるときは、括弧を削除してそれを正確に解析します。
  • ドキュメントに含まれるコード断片の全ての名前がリンク (たとえば、SOURCE_BROWSER = YES のとき)で置き換えられるというわけではありません。 また、オーバーロードされたメンバーへのリンクが違うメンバーをさすということもありえます。 また、各関数について生成される"Referenced by"リストにもこの現象が起こりえます。

    こういった現象の原因は、コード解析能力の不足にあり、いずれ改善できると考えています。 しかしそれでもすべてのリンクが正しくなるとはいえません。なぜなら、コード断片が ある箇所についてあいまいであったり情報が不足する場合がありうるからです。

  • クラスAにfという名のメンバーがある場合、同じ引数リストの非メンバー関数fを、 \relates や \relatesalsoコマンドを使って挿入することはできません。
  • メンバーの特殊化は、ほんの一部しかサポートできません。 特殊化されたテンプレートクラスがある場合しか働きません。
  • 特殊コマンド全部がRTFにうまく翻訳できるわけではありません。
  • バージョン1.8.6以前のdotでは、マップファイルがうまく生成されないので、生成された グラフがクリックできないことがあります。
  • PHPだけの現象ですが、すべての文(コード)が関数またはメソッド内でラップされて いないと、解析できないことがあります。

ヘルプ

doxygen の開発は、ユーザのご意見によって大きく左右されます。

doxygen を使ってみて思われたことをお知らせください(特徴が足りませんか)。 使わない理由があれば教えてください。

バグレポートの方法

バグはGNOMEのbugzillaデータベースにトラックされています。 新しいバグを提出する前に、 データベース検索して、同じバグが提出済みでないかチェックしてください。 新しいバグと判断できたら、報告してください。

バグなのかどうか不安な場合は、ユーザメーリングリスト でヘルプを求めてください(サブスクリプションが必要です)。

バグの(漠然とした)説明だけを送るのは、通常あまり役立ちません。それは私に時間を浪費させるだけです。 最悪の場合、バグリポートを無視することもありえますので、次の情報をリポートに含めるようにしてください。

  • 使っておられるdoxygenのバージョン( 1.5.3など, 分からない場合はdoxygen --versionで確かめてください)
  • OSの名前とバージョン番号(SuSE Linux 6.4など)
  • 設定ファイルを一緒に送ることは通常良い考えですが、設定ファイルを小さくするため -s フラグをつけてdoxygenを使ってください (既存の設定ファイルからコメントを除去するのにdoxygen -s -u [configName]を使用)
  • バグを改修するもっとも簡単な(大抵の場合これしかない)方法は、問題を立証する小さな例題をバグリポートに付けていただくことです。 こちらで問題を再現できるからです。例題は有効なコード(実際にコンパイルできる)で作ってください。 そして例題によって正確に再現できるようにしてください (実際のバグを起こさない例題を受けることが多いです)。複数のファイルを送られる場合は、 処理しやすいよう、zip や tar で圧縮して単一のファイルにしてください。 新しいバグをリポートされる際、ファイルの添付は、最初にバグに関する記述を提出してから出ないとできません。

バグにパッチを追加することができます。その場合は、バグ登録フォームにPATCHをキーワードとしてお使いください。

現存のバグを改修する方法についてアイデアがある場合は、 開発者メーリングリスト で議論してください(サブスクリプションが必要です)。 バグトラッカーやメーリングリストを通じてパッチを送るのがいやな場合は、dimitri@stack.nl に直送しても かまいません。

パッチについては、"diff -uN"を使うか変更したファイルを含めてください。 複数のファイルを送る場合は、tar やzip で圧縮して、ひとつのファイルだけ保存・ダウンロード すればよい様にしてください。

インデックスに戻る。

This page was last modified on 14 Feb 2011.
© 1997-2010 Dimitri van Heesch, first release 27 oct 1997.
© 2001 OKA Toshiyuki (Japanese translation).
© 2006-2011 TSUJI Takahiro (Japanese translation).
© 2006-2011 TAKAGI Nobuhisa (Japanese translation).