ホームページ >バックエンド開発 >PHPチュートリアル >valgrind_PHP チュートリアルを使用した PHP 拡張メモリ リークの検出
原文: https://bugs.php.net/bugs-getting-valgrind-log.php
1. phpをコンパイルするときは--enable-debug选项
を持参する必要があります。
2. PHP のメモリ管理を無効にします。
リーリー
またはリーリー
上記の方法はphp5.2以降のバージョンに適しています。 5.2 より前の PHP は、 オプションを使用してコンパイルする必要があります。 --disable-zend-memory-manager
リーリー
またはリーリー
この設定は、PHP 5.3.11 以降のバージョンに適用されます。編集者注: たとえば、
が設定されていない場合、valgrindはZEND_DONT_UNLOAD_MODULES
を報告する可能性があります。
リーリー
すると以下のように表示されますZEND_DONT_UNLOAD_MODULES
リーリー
リーリー
これにより、現在のディレクトリの php.log ファイルにログが出力されます。Web サーバーに組み込まれている PHP を検出したい場合は、CLI 実行可能ファイルに適切な -S および -t パラメーターを使用する必要があります。次に、ブラウザー要求を通じてそれを実行し、php.log で valgrind エラーを確認します。
valgrind経由でPHP Apacheモジュールを実行
/path/to/httpd,这样会输出一些东西(例如not stripped)
リーリー
リーリー
リーリー
ブラウザリクエストを通じてアクセスすると、すべてのメモリエラーがapache.logに出力されます。