Что делать с плоховоспроизводимыми ошибками в PHP?

Scud

Новичок
Что делать с плоховоспроизводимыми ошибками в PHP?

В очередной раз столкнулся с проблеммой когда есть ошибка, PHP с неё "плохеет" и он валится. Нашел у себя в программе некое "место" после незначительной корректировки которого (например, вырезать из передоваемой строки пару букв) ошибка исчезает, если вернуть всё назад - ошибка появляется.

На упрощённом скрипте я эту ошибку (и многие другие) воспроизвести не могу, что делать. Оно меня нервирует.
 

berkut

Новичок
Scud
а какой пых-пых? у меня на 4.3.10 на вызове debug_backtrace() переодически также непредсказуемо;) валится, в зависимости от контекста вызова
 

Макс

Старожил PHPClub
у меня на 4.3.10 на вызове debug_backtrace() переодически также непредсказуемо валится, в зависимости от контекста вызова
в PHP4 + ZendOptimizer часто ловлю segmentation fault в таком и подобных ситуациях:
PHP:
function test() {
    debug_backtrace();
}
set_error_handler('test');
$a = array(1,2,3, array());
array_filter($a, 'strtolower');
вобщем случаи когда debug_backtrace через какую-то хитрую цепочку вызывать
 

berkut

Новичок
у меня без оптимизера и на винде. но тот код, что валит четвёрку, нормально работает на пятёрке - поэтому нефиг сидеть на старье, надо хотя-бы до последней четвёрки обновлятся
 

Scud

Новичок
У меня 5.2.5 на Windows XP, достаточно большая система, при работе которой Пых валится и Windows предлагает отправить отчёт об ошибке.

Я приблизительно нашел причину падения, но воспроизвести её не могу. У меня есть класс который в конструкторе принимает форматную строку для vsprintf и аргументы для неё, т.е. по сути это отложенный до __toString() вызов vsprintf. Так вот, когда в строго определённом месте в моей программе в конструктор этого класса передаётся набор аргументов N - то всё падает, а когда набор аргументов M то нет. В M и N входят только строки, отличе N от M длинна 4-го аргумента для vsprintf. Когда она 50 символов - не падает, когда 51 - падает, когда за 70 - не падает. Воспроизвести не могу.
 
Сверху