Отладка скрипта

При отладке скрипта я использую

  • Дедовские методы: команды echo, print_r

    Голосов: 130 75,1%
  • Отладочные скрипты и классы

    Голосов: 7 4,0%
  • Отладочный Порт

    Голосов: 0 0,0%
  • PHPEdit

    Голосов: 6 3,5%
  • Zend Studio

    Голосов: 14 8,1%
  • что-то иное (написать)

    Голосов: 6 3,5%
  • xdebug

    Голосов: 5 2,9%
  • DBG

    Голосов: 5 2,9%
  • ADP

    Голосов: 0 0,0%

  • Всего проголосовало
    173
tony2001:

видимо я афигительно в шары долбился...
пасиб..
попробую...
 
Автор оригинала: Yurik
display_error=on
error_reporting = E_ALL

print_r
var_dump
echo
phpinfo
exit;
die
Это про что вообщее? Мне кажется это не совсем то, что имел в виду предыдущий участник.
 
Пробовал разные дебаггеры, вроде все озвучивались, но реально польуюсь дедовскими плюс пара дополнительных фич и приемов.
А для отладки маленьких кусков и простых алгоритмов пользуюсь такой штукой:
PHP:
 testCode.php:
<?php

$phpCode = &$_POST["code"];
$phpCode = stripslashes($phpCode);

?>

<form method='post'>
<textarea name='code' cols=80 rows=5 style="font-family: couries new; font-size: 10pt"><?=$phpCode?></textarea><br>
<input type='submit' value='запузырить'>
</form>

<?

eval($phpCode);

?>
 
Автор оригинала: ma2dy
Все таки как говорит статистика ( см. начало топика)
Старый дедовский echo надежнее всего
Оно не то, чтобы надежнее - оно проще.
Даже когда есть дебажный класс - то тыкать в каждое место
PHP:
$debug->Message(D_SQL, $sql_statement);
ты не станешь.
А так - ну глюкнуло что-то, сказал ты в этом месте print_r(), посмотрел, пофиксил, убрал.

А дебаггерами или IDE я не пользуюсь - пишу ручками.
 
А так - ну глюкнуло что-то, сказал ты в этом месте print_r(), посмотрел
Главное в этом деле знать то место где глюкнуло :) Вот когда не знаешь на каком этапе именно глюкнуло, тогда и используешь отладчики :)
 
Oi... :-)
А у меня каждый раз в поп-апе вылазит дебаг мой...
что он делает ?

1) все SQL запросы и инфа по ним (с ошибками если есть)
2) Переменный POST GET COOKIE SESSION
3) можно выкидывать (вместо echo) туда переменные (спец. метод)
4) Templateовые переменные
5) Время выполнения скриптов
6) Внутренние ошибки (логика и проверки)

мне хватает ... даже совсем хватает... :-)
 
Народ, ну вы даете! DBG рулит - лучшего средства дебага под win я не видел, отладка почти как в VisualStudio.
Я долго удивлялся, как я вообще жил без такой отладки еще полгода назад.
Одна беда - DBG стал платным :( И теперь не работает с php4.3+, посему сидим в php4.2, но это того стоит!

А еще есть отладочный класс debug, который работает как singleton и доступен в любом классе.
Использует методы типа debug::write_notice(), debug::write_warning(), debug::write_error() и пишет в log, а по желанию выкидывает html popup со всей отладочной инфой.
 
Код пишешь постепенно, когда понимаешь, что ты уже нифига не понимаешь, два шага назад и заново все строчишь =)

Ну если не так все плохо, то echo.
 
Итак, я вот как делаю.
Открываю окно одно и пишу в него с помощью джава скрипта.
и в классы поставил переменную сет дебуг левел.
и устанавливаю например, чтоб не было каких нибудь ошибок, я ставлю эту переменую в 0, а чтоб максимально писала в отладочное окно ставлю например 5. Это уже зависит сколько у меня уровней дебугизации
 
Автор оригинала: pacha
Одна беда - DBG стал платным :( И теперь не работает с php4.3+, посему сидим в php4.2, но это того стоит!
Забористая штука, отсыпь!

P.S. Бесплатная версия замечательно скачивается и замечательно с 4.3.x работает
 
P.S. Все скрипты, что я пишу написаны под register_globals=off, и соответственно их легче отлаживать.
 
die -- когда работается с чужими базами, остальное от лукавого, в коде все видно.
 
До сих пор - дедовскими способами и их собственными вариациями.
Сейчас заценю xdebug, а потом уже проголосую...
 
Обычный дамп всех переменных.
PHP:
<?
echo "\n<!-- BEGIN VARIABLE DUMP -->\n\n";
echo "<!-- BEGIN GET VARS -->\n";
echo "<!-- ".dump_array($HTTP_GET_VARS)." -->\n";
echo "<!-- BEGIN POST VARS -->\n";
echo "<!-- ".dump_array($HTTP_POST_VARS)." -->\n";
echo "<!-- BEGIN SESSION VARS -->\n";
echo "<!-- ".dump_array($HTTP_SESSION_VARS)." -->\n";
echo "<!-- BEGIN COOKIE VARS -->\n";
echo "<!-- ".dump_array($HTTP_COOKIE_VARS)." -->\n";
echo "\n<!-- END VARIABLE DUMP -->\n";

function dump_array($array)
{
 if(is_array($array))
 {
 $size= count($array);
 $string="";
  if($size)
  {
  $count=0;
  $string.="{ ";
   foreach($array as $var=>$value)
   {
   $string.= "$var= $value";
    if($count++<($size-1))
    {$string.=", ";}
   }
  $string.=" }";
  }
 return $string;
 }
 else
 {return $array;}

}
?>
Который просто инклюдю в тестируемый скрипт

Понравился Debug Lib, но так не дошли руки
 
Как правило вполне хватает "дедушкиных методов", редко когда приходиться дополнительно скрипты для отладки писать... Но иногда приходиться...
 
IMHO, внутренний отладчик очень пристойно работает. Это, кстати, очень повлияло в свое время на выбор мной PHP как основного языка web-программирования. Ибо PERL в этом отношении, конечно, не на высоте.
 
Сверху