使用valgrind调试php扩展的内存泄漏

时间:2012-09-13 05:30:58

标签: php debugging memory-leaks valgrind shared-libraries

有很多'?'在调试php扩展的内存泄漏的日志中,所以使用valgrind.It建议程序应该避免在共享对象上调用dlclose。 我怎样才能做到这一点?可以说它只能通过修改php的源代码来实现吗?

1 个答案:

答案 0 :(得分:1)

您需要为php构建安装调试符号...许多打包系统使调试包单独提供给发布包。该软件包(如果可用)通常使用约定php-debug / php-dbg / php53-dbg / php53-debug进行命名。

如果它不可用,那么你需要自己编译一个PHP的副本并启用调试,为了做到这一点并且不打扰你当前的安装,通常足以添加--prefix = / my / private / folder到配置选项。要启用调试add --enable-debug,你需要重新编译php扩展(假设它是pecl,如果它有泄漏),首先是make clean,然后是/my/private/folder/bin/phpize.

祝你好运:)