デバッグビルドの使用¶
Pythonパッケージのネイティブコードの開発では、デバッグビルドを使用したいと思うかもしれません。それには、-Dbuildtype=debug
オプションをmeson setup
に渡す必要があります。これは-Ddebug=true -Doptimization=0
というオプションと同じものです。また、固定ビルドディレクトリで編集可能なビルドを設定するとよいでしょう。そうすれば、インストールされたデバッグビルドの共有ライブラリには、正しいパスが含まれます。そうしないと、meson-python
が使用する一時ビルドディレクトリへのパスになってしまいます。その場合、IDEやその他のツールは、デバッグ中も正しいファイルの場所と行番号を表示できません。
次のpip
呼び出しですべて行えます
$ pip install -e . --no-build-isolation \
-Csetup-args=-Dbuildtype=debug \
-Cbuild-dir=build-dbg
パッケージのこのデバッグビルドは、通常のPythonインタープリターでもデバッグ用Pythonインタープリターでも使用できます。デバッグ用Pythonインタープリターは必須ではありませんが、役立つ場合があります。ソースからビルドされるか、選択したパッケージマネージャーから入手できる可能性があります(通常はpython-dbg
などのパッケージ名です)。デバッグ用Pythonインタープリターを使用しても、パッケージ自体のデバッグビルドにはなりません。-Dbuildtype=debug
またはこれと同等のフラグを使用する必要があります。
警告
Conda環境内では、CFLAGS
やCXXFLAGS
などの環境変数は、通常、環境がアクティブ化されると設定されます。これらの環境変数には、-O2
などの最適化フラグが含まれており、これによって-Dbuildtype=debug
で暗示される最適化レベルが上書きされます。これを回避するには、これらの変数の設定を解除します
$ unset CFLAGS
$ unset CXXFLAGS
最後に、ビルドタイプをデフォルト値のrelease
からdebug
に変更すると、meson-python
によって(または、より正確には無効化されずに)NDEBUG
マクロが定義されなくなります(デフォルトビルドオプションのb_ndebug
を参照)。