Вышел PHP 5.1! Новая эра PHP

tony2001

TeaM PHPClub
нет, не всегда.
бесконечная рекурсия, например, должна приводить к пожиранию памяти и/или падению.
никаких данных нет - больше ничего не могу сказать.
 

Develar

Новичок
Ясно. Как трудно быть хорошим - можно плюнуть и решить по-другому задачу - а можно сесть и понять источник проблемы: и помочь в развитии языка. Огромное спасибо за Ваши быстрые ответы. Все-таки у меня подозрение на PHP. Что ж. Наверное через часик представлю код для баг-репорта или найду ошибку в коде.
 

tony2001

TeaM PHPClub
окей.
ничего трудного нет: убираешь/комментируешь куски кода и смотришь - изменилось поведение или нет.
так приходишь к минимальному коду, в котором уже в сотню раз проще найти ошибку или проблему.
 

Profic

just Profic (PHP5 BetaTeam)
Как получить второе под виндой - я, к сожалению, не в курсе.
Есть мнение, что люди, которые разрабатывают на винде, должны знать как дебажить там программы.
Попробовал описать этот процесс, получилось это.
 

_RVK_

Новичок
Added an additional field $frame['object'] to the result array of debug_backtrace() that contains a reference to the respective object when the frame was called from an object. (Sebastian)

Поясните, плиз, что сиё означает на практике? То есть я всегда теперь смогу получить ссылки на все объекты, методы которых были выполнены до вызова debug_backtrace()?
 

svetasmirnova

маленький монстрик
_RVK_
Нет, раньше если ты делал var_dump объекта или массива, элементы которого содержали рекурсивные ссылки, РНР вылетал. Сейчас этого не произойдёт.
 

_RVK_

Новичок
Добавленно дополнительное поле $frame['object'] к результирующему массиву debug_backtrace() , который содержит ссылку на соответствующий объект, если frame был вызван из этого объекта... у меня что, с аглиским туго, или спать пора? где тут var_dump и рекурсивные ссылки?
 

svetasmirnova

маленький монстрик
:) Сплю. Не var_dump, конечно.
Искала баг, иллюстрирующий случай, но не нашла. Есть РНР 3-ёх месячной давности или более ранний? Делаешь debug_backtrace в каком-нибудь месте, где идёт обращение к GLOBALS. Получаешь crash. Потом тоже самое с последним РНР.
 

Andrey_Ra

Новичок
Автор оригинала: tony2001
тестировать на вашей винде надо было ДО релиза, а не ПОСЛЕ.

-~{}~ 25.11.05 20:51:

вот, кстати, показатель заинтересованности:
вместо того, чтобы исследовать проблему и заполнить баг-репорт - спокойно откатились и забыли.
ну ждите, ждите.. может, кто-то вам и сделает..
Баги постили раньше, среднее время исправления багов - от года до полутора.
Как пример приведу баг интерактивного режима (не проверял, может в 5.1.1 как раз это исправили), т.е. когда php запускается с параметром -a и падает по любому поводу, а также баг с библиотекой mssql, которая с некоторых пор значения типа NULL возвращает как пробел, а не пустую строку.
 

tony2001

TeaM PHPClub
>Баги постили раньше
Раньше постили, а теперь пошли по форумам рассказывать свой бред?
Хоть один вспомни.

> среднее время исправления багов - от года до полутора.
Ерунда.

>Как пример приведу баг интерактивного режима (не проверял, может в 5.1.1 как раз это исправили)
??
Как пример, приведу по крайней мере 10 багов из той же области.
Все были закрыты примерно за неделю.
Может это, завираться не надо?
Я понимаю, что хочется себе оправдание придумать, но так уж явно ..

>а также баг с библиотекой mssql, которая с некоторых пор значения типа NULL
> возвращает как пробел, а не пустую строку.
это баг старой ntwdblib.dll.
обращайтесь в Mickeysoft.
 

BeGe

Вождь Апачей, блин (c)
Баги фиксяться
во-первых если есть желание
во-вторых если есть время
в-третих если ты правильно попросишь, расскажешь человеку всё что можно и нужно, остальное он сам спросит если чего-то не поймёт
в-четвёртых даш пример воспроизведения бага в одном файле и с коментариями

тогда этот баг решиться очень быстро, потому что будет найдено место возниконовения и причина.

А так... я тут нашёл баг, вот в этом месте за углом, и только если смотреть через заднее отверстие.
Такие баги будут висеть по 2-3 года и никто их не будет фиксить... потому что их никто не будет даже пытаться воспроизвести
 

svetasmirnova

маленький монстрик
tony2001
>бесконечная рекурсия, например, должна приводить к пожиранию памяти и/или падению.

Можешь привести пример, который приводит именно к падению? Это нужно для статьи про отладку.
 

si

Administrator
svetasmirnova
любая рекрсия если не стоит memory_limit

-~{}~ 01.12.05 14:31:

любая = любая бесконечная
 

svetasmirnova

маленький монстрик
C:\My Documents>php -r "function foo(){return foo();} echo foo();"
PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0

Fatal error: Maximum function nesting level of '100' reached, aborting! in Command line code on line 1

Call Stack:
0.0144 1. {main}() Command line code:0
0.0145 2. foo() Command line code:1
0.0159 3. foo() Command line code:1
Такой результат не нужен. Нужен именно crash. Чем-то ведь когда-то я добивалась, причём со стандартными установками =)

-~{}~ 01.12.05 16:15:

Вот статья: http://phpclub.ru/faq/wakka.php?wakka=gdb&v=12mm
 

BeGe

Вождь Апачей, блин (c)
PHP:
<?php
        function foo ($arr,$k) {
                for($i=$k;$i<$k+10000;$i++) {
                        $arr[$i] = rand();
                }
                foo($arr,$i);
        }

        foo(array(),0);
?>
php crash.php

вылетает по мемори лимит.....
 
Сверху