id summary reporter owner description type status priority milestone component version resolution keywords cc port 56317 php71-xdebug @2.6.0_0 trap 6 when executing script which generates a PHP Notice during an eval(). iakoder ryandesign "I thought this might be an xdebug issue so I reported this to https://bugs.xdebug.org/view.php?id=1545 Turns out it's more likely a macports/xdebug/php issue. The following script when executed in PHP 7.0 or 7.1 w/ xdebug 2.6.0 crashes when executed with MacPorts php70 or php71 with xdebug 2.6.0. Without xdebug it works fine. Using PHP 5.6 w/ xdebug 2.5.5 works fine. Using PHP 7.1.16 + xdebug 2.6.0 built from source works fine. Crashes {{{ $t = ""\$arr[0] .= \""abc\"";""; echo ""$t\n""; eval($t); echo ""Done\n""; }}} Doesn't Crash {{{ $t = ""\$arr[0] = \""abc\"";""; echo ""$t\n""; eval($t); echo ""Done\n""; }}} Relevant Versions: {{{ macOS High Sierra 10.31.2 XCode 9.3 9E145 MacPorts 2.4.3 php70 @7.0.29_0+libedit php70-xdebug @2.6.0_0 php71 @7.1.16_0+libedit php71-xdebug @2.6.0_0 }}} PHP 7.1.16 + xdebug 2.6.0 crashes {{{ $ php71 --version PHP 7.1.16 (cli) (built: Apr 2 2018 22:57:16) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.1.16, Copyright (c) 1999-2018, by Zend Technologies with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans $ php71 -r '$t = ""\$arr[0] .= \""abc\"";""; echo ""$t\n""; eval($t); echo ""Done\n"";' $arr[0] .= ""abc""; php71(20604,0x7fffb6ad6340) malloc: *** error for object 0x10cd30dbf: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug Abort trap: 6 }}} A version that doesn't generate notices doesn't fail {{{ $ php71 -r '$t = ""\$arr[0] = \""abc\"";""; echo ""$t\n""; eval($t); echo ""Done\n"";' $arr[0] = ""abc""; Done }}} PHP 7.0.29 w/ xdebug 2.6.0 crashes {{{ $ php70 --version PHP 7.0.29 (cli) (built: Mar 30 2018 05:11:11) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.29, Copyright (c) 1999-2017, by Zend Technologies with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans $ php70 -r '$t = ""\$arr[0] .= \""abc\"";""; echo ""$t\n""; eval($t); echo ""Done\n"";' $arr[0] .= ""abc""; php70(20607,0x7fffb6ad6340) malloc: *** error for object 0x10ae81dbf: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug Abort trap: 6 }}} Version that doesn't generate notices during eval works fine {{{ $ php70 -r '$t = ""\$arr[0] = \""abc\"";""; echo ""$t\n""; eval($t); echo ""Done\n"";' $arr[0] = ""abc""; Done }}} After disabling xdebug everything works fine {{{ $ php71 --version PHP 7.1.16 (cli) (built: Apr 2 2018 22:57:16) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.1.16, Copyright (c) 1999-2018, by Zend Technologies dwilks-mbp-l:xdebug-2.6.0 dwilks$ $ php71 -r '$t = ""\$arr[0] .= \""abc\"";""; echo ""$t\n""; eval($t); echo ""Done\n"";' $arr[0] .= ""abc""; Done $ php70 --version PHP 7.0.29 (cli) (built: Mar 30 2018 05:11:11) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.29, Copyright (c) 1999-2017, by Zend Technologies $ php70 -r '$t = ""\$arr[0] .= \""abc\"";""; echo ""$t\n""; eval($t); echo ""Done\n"";' $arr[0] .= ""abc""; Done }}} PHP 5.6 works fine with xdebug 2.5.5 {{{ $ php56 --version PHP 5.6.35 (cli) (built: Mar 30 2018 07:58:04) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans $ php56 -r '$t = ""\$arr[0] .= \""abc\"";""; echo ""$t\n""; eval($t); echo ""Done\n"";' $arr[0] .= ""abc""; Done }}} With PHP 7.1.6 + xdebug 2.6.0 built from source: {{{ $ /usr/local/php71/bin/php --version PHP 7.1.16 (cli) (built: Apr 17 2018 14:04:52) ( NTS DEBUG ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans $ /usr/local/php71/bin/php -r '$t = ""\$arr[0] .= \""abc\"";""; echo ""$t\n""; eval($t); echo ""Done\n"";' $arr[0] .= ""abc""; Done }}} PHP configuration: {{{ ./configure --prefix=/usr/local/php71 \ --enable-debug \ --with-config-file-path=/usr/local/php71/etc \ --with-config-file-scan-dir=/usr/local/php71/etc/conf.d \ --disable-all \ --enable-bcmath \ --enable-ctype \ --enable-dom \ --enable-filter \ --enable-hash \ --enable-json \ --enable-libxml \ --enable-pdo \ --enable-session \ --enable-simplexml \ --enable-tokenizer \ --enable-xml \ --enable-xmlreader \ --enable-xmlwriter \ --with-bz2=/opt/local \ --with-mhash=/opt/local \ --with-pcre-regex=/opt/local \ --with-libxml-dir=/opt/local \ --with-zlib=/opt/local \ --without-pear \ --disable-cgi \ --enable-cli \ --enable-fileinfo \ --enable-phar \ --disable-fpm \ --with-apxs2=/opt/local/bin/apxs make make test sudo make install }}} xdebug configuration: {{{ /usr/local/php71/bin/phpize ./configure --prefix=/usr/local/php71 --with-php-config=/usr/local/php71/bin/php-config make make test sudo make install sudo bash -c 'echo zend_extension=xdebug.so > /usr/local/php71/etc/conf.d/xdebug.ini' /usr/local/php71/bin/php -i | grep xdebug }}} " defect closed Normal ports invalid php71-xdebug