1.5 デバッグ版ビルド (Debugging Builds)

インタプリタと拡張モジュールに対しての追加チェックをするためのいくつかの マクロを有効にしてPythonをビルドすることができます。 これらのチェックは、実行時に大きなオーバーヘッドを生じる傾向があります。 なので、デフォルトでは有効にされていません。

Pythonデバッグ版ビルドの全ての種類のリストが、Pythonソース配布(source distribution)の中の Misc/SpecialBuilds.txt にあります。 参照カウントのトレース、メモリアロケータのデバッグ、インタプリタのメインループの 低レベルプロファイリングが利用可能です。よく使われるビルドについてのみ、 この節の残りの部分で説明します。

インタプリタを Py_DEBUG マクロを有効にしてコンパイルすると、 一般的に 「デバッグビルド」 といわれるPythonができます。 Unix では、 configure コマンドに --with-pydebug を追加することで、 Py_DEBUG が有効になります。 その場合、暗黙的にPython専用ではない _DEBUG も有効になります。 Unix ビルドでは、 Py_DEBUG が有効な場合、コンパイラの最適化が無効になります。

あとで説明する参照カウントデバッグの他に、以下の追加チェックも有効になります。

ここで言及されていない追加チェックもあるでしょう。

Py_TRACE_REFS を宣言すると、参照トレースが有効になります。 全ての PyObject に二つのフィールドを追加することで、 使用中のオブジェクトの循環二重連結リストが管理されます。 全ての割り当て(allocation)がトレースされます。 終了時に、全ての残っているオブジェクトが表示されます。 (インタラクティブモードでは、 インタプリタによる文の実行のたびに表示されます) Py_TRACE_REFS は Py_DEBUG によって暗黙的に有効になります。

より詳しい情報については、Pythonのソース配布(source distribution)の中の Misc/SpecialBuilds.txt を参照してください。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。