β

valgrind检测php扩展的warning

鱼儿的博客 89 阅读

今天在排查PHP扩展的bug,使用了valgrind检测内存问题:

valgrind php test.php

发现如下WARNING信息:

warning:Warning: set address range perms: large range [0x395df000, 0xb95df000) (noaccess)

网上说这应该是分配了一个比较大的内存导致的,仅仅是一个警告信息,valgrind并没有给出更多的细节。

所以,我采用了排除法,将我开发的PHP扩展关闭,发现问题依旧。然后关闭了opcache,发现问题消失,查看Opcache配置发现配置了一个2048MB的共享内存空间:

opcache.memory_consumption=2048

而valgrind提示的信息中,2个地址相减正好是大约2G的大小(用python):

>>> 0xb95df000- 0x395df000
483648
>>> 0xb95df000 - 0x395df000
483648

可以确定,这不是一个bug,属于opcache的正常行为,valgrind只是友善的给予警告而已。

作者:鱼儿的博客
斯是陋室,惟吾德馨
原文地址:valgrind检测php扩展的warning, 感谢原作者分享。