【发布时间】:2012-09-06 04:03:24
【问题描述】:
有很多“?”在调试php扩展的内存泄漏时的日志中,因此使用valgrind。建议程序应避免在共享对象上调用dlclose。 我怎样才能做到这一点?难道说只能通过修改php的源码来实现吗?
【问题讨论】:
标签: php debugging memory-leaks valgrind shared-libraries
有很多“?”在调试php扩展的内存泄漏时的日志中,因此使用valgrind。建议程序应避免在共享对象上调用dlclose。 我怎样才能做到这一点?难道说只能通过修改php的源码来实现吗?
【问题讨论】:
标签: php debugging memory-leaks valgrind shared-libraries
您需要为您的 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。
祝你好运:)
【讨论】: