2012-09-13 16 views
3

有很多'?'在日誌中調試php擴展的內存泄漏,所以用valgrind。建議程序應該避免在共享對象上調用dlclose。 我該怎麼做?難道說它只能通過修改php的源代碼來實現嗎?用valgrind調試php擴展的內存泄漏

回答

1

您需要爲您的php版本安裝調試符號......很多打包系統使調試軟件包可單獨提供給發行包。該軟件包(如果有的話)通常會使用約定php-debug/php-dbg/php53-dbg/php53-debug進行命名。

如果它不可用,那麼您需要自己編譯一個啓用了調試功能的PHP副本,這樣做並且不會打擾您當前的安裝,通常只需將--prefix =/my/private/folder添加到配置選項。要啓用調試,請添加--enable-debug,然後您需要重新編譯php擴展名(我假設它來自pecl,如果它有泄漏),先從make clean開始,然後是/ my/private/folder/bin/phpize。

祝您好運:)

+0

:我知道這會有所幫助。不過,我想知道是否有更好的選擇。 – deatheye

+0

The?在調試符號出現時將被替換爲有用的信息。然後你會知道發生了什麼,在哪個文件,函數和行中使用gdb和斷點,你一定會發現錯誤。 您可能會嘗試的另一件事是要求擴展作者檢查您的PHP版本,如果該項目仍然保留... –