Closed Li4n0 closed 5 years ago
你的 php 版本是 7.0 还是 7.2 ???
title打错了。。是7.2
我使用 docker pull ubuntu:18.04
然后
apt install php7.2-dev
git clone https://github.com/fate0/xmark.git
cd xmark/
phpize
./configure
make
make test
php -n -d "extension_dir=./modules/" -d "extension=xmark.so" -d "xmark.enable=1" -d "xmark.rename_functions=var_dump:_var_dump" test.php
并没有复现这个问题,请问你是怎么出现这个问题的? phpize 信息是什么?
我使用
docker pull ubuntu:18.04
然后
apt install php7.2-dev git clone https://github.com/fate0/xmark.git cd xmark/ phpize ./configure make make test php -n -d "extension_dir=./modules/" -d "extension=xmark.so" -d "xmark.enable=1" -d "xmark.rename_functions=var_dump:_var_dump" test.php
并没有复现这个问题,请问你是怎么出现这个问题的? phpize 信息是什么?
以下是我的 phpize 信息:
phpize7.2 -v
Configuring for:
PHP Api Version: 20170718
Zend Module Api No: 20170718
Zend Extension Api No: 320170718
我触发的流程:
git clone https://github.com/fate0/xmark.git
cd xmark/
phpize7.2
./configure
cp moudles/xmark.so usr/lib/php/20170718/xmark.so
php -d "extension=xmark.so" -d "xmark.enable=1" -d "xmark.rename_functions=var_dump:_var_dump" test.php
[1] 1712 segmentation fault (core dumped) php -d "extension=xmark.so" -d "xmark.enable=1" -d test.php
随后修改 test.php 的内容,尝试 hook print_r:
<?php
function print_r($a){
echo "1\n";
_print_r($a);
}
print_r(11111111);
php -d "extension=xmark.so" -d "xmark.enable=1" -d "xmark.rename_functions=print_r:_print_r" test.php
1
11111111
我在docker和本地环境中均存在此问题。
抱歉,实在没复现成功,能否告知 docker image 是哪个,之后如何安装的 php,或者能否提供一个 Dockerfile
https://send.firefox.com/download/86d20b4c88/#1weLYwLzDnXh0l4XoDbaWg 这是我使用的 Dockerfile
用了你的 Dockerfile,之后 apt install php7.2-dev
还是没法复现。。。
用了你的 Dockerfile,之后
apt install php7.2-dev
还是没法复现。。。
抱歉这两天有比赛,回复得晚了,我又换了服务器环境测试发现同样的 Dockerfile 内没问题...本地18.04和本地 Docker 容器内都存在这个问题,想来应该是我本地电脑的问题了。感谢师傅这几天的耐心调试。
测试的时候发现同样情况, gdb 看了一下
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff536c119 in ?? () from /usr/lib/php/modules/xdebug.so
应该是与 xdebug 的 var_dump 冲突了,把 xdebug 去掉后运行正常,不知道你是不是同样的问题
如题环境下,使用文档中给出的测试样例,会出现core dumped:
hook 其他函数正常: