RE: [PHP-DEV] PHP 7 Segmentation fault
| From: | Anatol Belski | Date: | Wed, 11 Nov 2015 20:31:56 +0000 |
| Subject: | RE: [PHP-DEV] PHP 7 Segmentation fault | ||
| References: | 1 2 3 4 5 6 7 8 9 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-89191@lists.php.net to get a copy of this message | ||
Hi Frank,
> -----Original Message-----
> From: Frank M. Kromann [mailto:fmk@webbypixel.com]
> Sent: Wednesday, November 11, 2015 9:29 PM
> To: Anatol Belski <anatol.php@belski.net>; 'Dmitry Stogov'
> <dmitry@zend.com>
> Cc: 'PHP Internals' <internals@lists.php.net>
> Subject: Re: [PHP-DEV] PHP 7 Segmentation fault
>
> Hi Anatol,
>
> I created a new clone of the repository and I do get the _live_range references.
>
> frank@dev Source]$ git clone
> http://git.php.net/repository/php-src.git
> php-tmp
> Cloning into 'php-tmp'...
> remote: Counting objects: 640667, done.
> remote: Compressing objects: 100% (128774/128774), done.
> remote: Total 640667 (delta 512461), reused 638458 (delta 510563) Receiving
> objects: 100% (640667/640667), 160.17 MiB | 31.95 MiB/s, done.
> Resolving deltas: 100% (512461/512461), done.
> [frank@dev Source]$ cd php-tmp/
> [frank@dev php-tmp]$ grep -rn _live_range Zend/
> Zend/zend_opcode.c:83: op_array->last_live_range = 0;
> Zend/zend_compile.h:176:typedef struct _zend_live_range {
> Zend/zend_compile.h:179:} zend_live_range;
> Zend/zend_compile.h:364: int last_live_range;
> Zend/zend_compile.h:366: zend_live_range *live_range;
> Zend/zend_compile.c:579:static uint32_t zend_start_live_range(zend_op_array
> *op_array, uint32_t start) /* {{{ */
> Zend/zend_compile.c:581: zend_live_range *range;
> Zend/zend_compile.c:583: op_array->last_live_range++;
> Zend/zend_compile.c:584: op_array->live_range =
> erealloc(op_array->live_range, sizeof(zend_live_range) * op_array-
> >last_live_range);
> Zend/zend_compile.c:585: range = op_array->live_range +
> op_array->last_live_range - 1;
> Zend/zend_compile.c:587: return op_array->last_live_range - 1;
> Zend/zend_compile.c:591:static void zend_end_live_range(zend_op_array
> *op_array, uint32_t offset, uint32_t end) /* {{{ */
> Zend/zend_compile.c:593: zend_live_range *range =
> op_array->live_range + offset;
> Zend/zend_compile.c:595: if (range->start == end && offset ==
> op_array->last_live_range - 1) {
> Zend/zend_compile.c:596: op_array->last_live_range--;
> Zend/zend_compile.c:619: info.u.live_range_offset =
> zend_start_live_range(CG(active_op_array), start);
> Zend/zend_compile.c:643: zend_end_live_range(CG(active_op_array),
> loop_var->u.live_range_offset, end);
> Zend/zend_compile.c:6472: range =
> zend_start_live_range(CG(active_op_array),
> get_next_op_number(CG(active_op_array)));
> Zend/zend_compile.c:6485: zend_end_live_range(CG(active_op_array),
> range, get_next_op_number(CG(active_op_array)));
> Zend/zend_compile.c:6807: uint32_t range =
> zend_start_live_range(CG(active_op_array), rope_init_lineno);
> Zend/zend_compile.c:6822: zend_end_live_range(CG(active_op_array),
> range, opline - CG(active_op_array)->opcodes);
> Zend/zend_execute.c:2552: for (i = 0; i <
> EX(func)->op_array.last_live_range; i++) {
> Zend/zend_execute.c:2553: const zend_live_range *range =
> &EX(func)->op_array.live_range[i];
Yeah, sure. Just there is no zend_add_live_range as in your first BT. We just was ensuring
you're using the correct and latest source, be it master or PHP-7.0. Thanks for checking.
Regrads
Anatol