@dev400

Зачем нужна отладка с брейкпоинтами?

Зачем нужна отладка с брейкпоинтами? По возможности дайте пример
  • Вопрос задан
  • 566 просмотров
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Редко работаю с PHP. Механизмы отладки ужасные, зачастую их нужно самих отлаживать :-)

Использование точек останова (breakpoints) существенно упрощает процесс отладки, поиска ошибок. В C# я иногда пишу код в режиме отладки, останавливая выполнение программы в нужном месте, вношу изменения или даже пишу существенные объемы кода с нуля, перемещаю управление в нужное место и могу тут же посмотреть, что получится, без лишних движений. Не видел подобного в PHP и сомневаюсь, что это возможно. Но даже обычный просмотр состояния переменных и объектов поможет сэкономить время. Без этого придется писать код вывода состояния через var_dump, print_r или echo, засорять вывод, ломать глаза. Придется прыгать между редактором кода и браузером, тратить драгоценные доли секунд за всякую ерунду с риском допустить еще большее количество ошибок.

Из реального практического примера, только что проводил отладку функции для обработки текстовых данных. Функция рекурсивная, процесс обработки данных относительно сложный.

Поставил точки останова, посмотрел какое значение на каждом шаге имеет переменная с обработанным текстом. Определил потенциальное место ошибки. Поставил больше точек в этом месте и посмотрел детально. Оказалось, что проблема в работе функции preg_replace. Поскольку с PHP я работаю редко и все забыл, то не смог бы сразу написать правильный шаблон, так что пришлось провести эксперименты непосредственно в точке останова. Сделал остановку в проблемном месте, открыл окно быстрой проверки (у меня Visual Studio) и прям в режиме реального времени опробовал разные варианты использования функции preg_replace с теми данными (переменными), которые находились в памяти. Получив нужный результат, заменил проблемный фрагмент кода. Всё, проблема решена. Быстро и просто, без лишних движений в коде.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Для просмотра состояния всех доступных переменных в данный момент.
Ответ написан
Комментировать
akubintsev
@akubintsev
Опытный backend разработчик
Я бы посмотрел, как вы отлаживали проект из нескольких api сервисов, из которых ни один не взаимодействует с браузером. Без дебаггера это просто чудовищно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы