[xdebug-general] Re: Segmentation-fault in xdebug.so from pkgtools (PHP7?)

From: Nish Aravamudan <nish.aravamudan[@]canonical.com>
Date: Wed, 27 Jan 2016 11:46:03 -0800

On 27.01.2016 [17:55:49 +0000], Derick Rethans wrote:
> On Wed, 27 Jan 2016, Nish Aravamudan wrote:
>
> > > > I'm happy to provide more output from gdb, but not really sure
> > > > where to start :)
> > >
> > > Can you instead provide the script to run, and exact steps on how to
> > > reproduce this? That includes command line arguments, exact PHP and
> > > Xdebug versions, etc.
> >
> > xdebug 2.4.0-rc4 php 7.0.2
> >
> > The script is bin/pkgtools from
> > http://anonscm.debian.org/cgit/pkg-php/pkg-php-tools.git/log/?h=master-7.0
> >
> > The core dump occurs regardless of any parameters to pkgtools (i.e.,
> > just running `pkgtools` should be sufficient).
> >
> > I reproduce this by spinning up a VM (technically a chroot, but
> > equivalent for this purpose) with Ubuntu Xenial, and adding a PPA to it
> > (https://launchpad.net/~php-ubuntu/+archive/ubuntu/php7.0). Update and
> > `apt-get install pkg-php-tools php-xdebug` and run `pkgtools`.
>
> I can reproduce this, but my "quick" fix breaks a test case for PHP 7,
> and I haven't figured out yet how to solve that bit. In any case, the
> crash fix is:
>
> diff --git a/xdebug_stack.c b/xdebug_stack.c
> index 2df4c99..ce57521 100644
> --- a/xdebug_stack.c
> +++ b/xdebug_stack.c
> @@ -1147,7 +1147,7 @@ static void xdebug_build_fname(xdebug_func *tmp, zend_execute_data *edata TSRMLS
> ) {
> tmp->type = XFUNC_NORMAL;
> tmp->function = xdstrdup("{internal eval}");
> - } else if (edata && edata->prev_execute_data && edata->prev_execute_data->opline && edata->prev_execute_data->opline->opcode == ZEND_INCLUDE_OR_EVAL) {
> + } else if (edata && edata->prev_execute_data && edata->prev_execute_data->func->type == ZEND_USER_FUNCTION && edata->prev_execute_data->opline && edata->prev_execute_data->opline->opcode == ZEND_INCLUDE_OR_EVAL) {
> switch (edata->prev_execute_data->opline->extended_value) {
> case ZEND_EVAL:
> tmp->type = XFUNC_EVAL;
>
> Could you be so kind to file a bug at http://bugs.xdebug.org please? You
> can mention this temporary patch as well (and please test it).

Filed issue #1261.

Will test the patch now, as well, and update the issue.

-- 
Nishanth Aravamudan
Ubuntu Server
Canonical Ltd
Received on Wed Jan 27 2016 - 19:46:08 GMT

This archive was generated by hypermail 2.2.0 : Mon Jun 25 2018 - 06:00:04 BST