Роман Журавлев портировал отладочный инструмент из Yii 2 для использования с 1.1. Его пост на хабре описывает детально возможности и настройку.
Все заметки с тегом «Отладка»
-
Дебаггер для Yii 1.1 портированный из Yii 2
30 августа 2013
-
display_startup_errors
7 июня 2013
Данная директива отвечает в PHP за вывод на экран не фатальных ошибок, возникающих из за неправильной конфигурации. Например, невозможность загрузить указанные в
php.ini
расширения.Ставить
display_startup_errors
вOn
, как иdisplay_errors
, на боевых серверах строго не рекомендуется. При отладке может быть полезно.Опцию имеет смысл выставлять в
php.ini
, а не в коде потому как проверки происходят ещё до запуска первой строчки кода.Даже если опция отключена, соответствующие ошибки пишутся в лог PHP.
display_errors
на данную опцию никак не влияет, а вот при низкомerror_reporting
часть ошибок, вроде "PHP Warning: POST Content-Length of X bytes exceeds the limit of X bytes in Unknown", не выводится и в лог не пишется. -
ratchet.io
5 февраля 2013
В конце января Кирилл kirs показал мне ratchet.io. Штука потрясающая.
В сервис можно отправлять логи и трейсы ошибок. Он за нас их группирует, сортирует по важности и позволяет помечать как решённые.
Ошибки и трейсы можно отсылать откуда угодно. Специальные решения есть под браузерный JavaScript, Python, Rails, PHP, Node.js, Flash, серверные логи, Airbrake. В качестве бонуса инструмент отлично настраивается, умеет создавать тикеты в различных системах и имеет неплохой API.
Пока-что всё бесплатно, но заплатить за такое вполне можно.
Тем, кто использует Yii будет немного приятней. В YiiExt есть готовое решение для интеграции в ваши проекты.
-
Скрытые возможности инструментов разработчика Chrome
5 октября 2012
Мегаполезная презентация о скрытых возможностях отладчика Chrome. Нашёл для себя несколько очень полезных штук и собираюсь попробовать оказавшийся очень простым API.
-
Adobe Shadow
23 июля 2012
В начале месяца у меня была задачка фикснуть одну злую штуковину на тему вёрстки на iPad, но так как внятных отладочных инструментов из коробки для него нет, работать приходилось вслепую, что результата не давало.
Я попробовал поставить Firebug Lite. Получилось, но под iOS он, как оказалось, работает очень и очень криво. В комментариях TermiT подсказал попробовать Adobe Shadow, за что ему огромное спасибо.
Штука очень крутая. Состоит из нескольких частей:
- Приложения под iOs и Android плюс бонус для Amazon Kindle Fire.
- ПО под Mac и Windows.
- Расширение для Chrome.
Эта связка даёт нам:
- Возможность синхронно ходить на всех устройствах по страничкам. Командует парадом Chrome.
- Возможность натраваить Chrome Developer Tools на любое из устройств, что даёт огромные возможности в отладке.
UPD: инструмент зарелизился. Назвается теперь Adobe Edge Inspect. По прежнему бесплатен и очень удобен.
-
Firebug на iOS
10 июля 2012
Понадобилось поотлаживать CSS на iPad в его iOS-Safari. Оказалось, ничего кроме довольно ущербной отладочной консольки на нём нет. Зато есть способ запустить Firebug lite. Правда, не совсем тривиальный.
Проблема в том, что букмарклеты просто так в мобильный Safari не добавить. Но способ есть:
- Идём по адресу http://www.thecssninja.com/javascript/iphone-bookmarklet.
- В разделе «I get it just give me the bookmarklet» щёлкаем неприметное слово «here». Потом щёлкаем его ещё раз и добавляем полученный адрес в закладки.
- После сохранения удаляем из адреса закладки всё до
#removeme_
включительно. - Идём на сайт Firebug lite.
- Используем ранее добавленный букмарклет, затем щёлкаем по «Firebug Lite» и, опять же, удаляем всё до
#removeme_
включительно.
Вот и всё. Теперь у нас есть букмарклет, подгружающий Firebug lite. Работет он на iPad плохо, но это намного лучше, чем отлаживать вслепую.
-
Поиск трудновыловимой ошибки делением пополам
6 июня 2012
Случается так, что день потрачен на попытку обнаружить причину ошибки, но дело так и не сдвинулось с мёртвой точки. Например, огромная куча JavaScript ещё вчера работала, а сегодня уже отказывается. Причём проявляется это на тестовом сервере, где эта самая куча сжимается и объединяется в один файл.
Для подобных трудновыловимых ошибок, как, впрочем, и для многих других подходит деление пополам.
Если используется система контроля версий, откатываемся на некоторое время назад и смотрим, есть ли ошибка. Если есть — откатываемся ещё. Если нет — идём вперёд ровно на половину. Так мы получим ревизию, которая всё испортила. Далее дело за малым.
Примерно так же можно поступать в вёрстке, если вдруг вылез супербаг. Убиваем половину кода и смотрим, остался ли баг.
Плюс такого подхода в том, что ошибка гарантированно локализуется. Минус — это не быстро.
-
Opera Dragonfly 1.0
5 мая 2011
Те, кто не следил за развитием аналога Firebug в Opera, будут приятно удивлены стабильным релизом Dragonfly. Отладочный инструмент Opera стал действительно полезным и теперь не особо уступает аналогичным решениям Firefox и Chrome.
-
Сообщения об ошибках и хороший код
17 апреля 2011
Как ни странно, очень многие разработчики пренебрегают более строгими режимами работы тех же PHP и MySQL. Странно это, прежде всего, потому, что включение таких режимов позволяет получать больше информации о потенциальных ошибках в коде и, соответственно писать код лучше.
В PHP самый строгий уровень ошибок можно получить записав в php.ini:
error_reporting = -1
Это позволяет выявить такие слабые места, как, например, использование переменных без их объявления. Да и банальные описки выявляются сразу, а не после пары часов жёсткого дебага.
В MySQL тоже есть строгий режим, который не позволяет, например, вставить строку длиной в 200 символов в поле
varchar(20)
. В «умолчательном» режиме MySQL молча вставит первые 20 символов, выкинув остальные. В строгом — получим соответствующую ошибку. Включается этот режим черезmy.cnf
:[mysqld] sql-mode = "STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE"
Все значения
sql-mode
можно подсмотреть в официальной документации. -
Отладка Google Analytics
4 марта 2011
Отладка Google Analytics — очень непростая задача. Фактически мы можем проверить только входы и выходы этого чёрного ящика. Если что-то работает не так, понять, что же на самом деле происходит сложно. Раньше в ход шли исключительно Firebug и Live HTTP Headers (или другой HTTP-профайлер). К большому нашему счастью, Google позаботился о разработчиках и выпустил сначала отладочный код
ga_debug.js
, а потом и упрощающее его использование официальное отладочное расширение для Chrome — Google Analytics Tracking Code Debugger.Включив его и открыв отладочную консоль, мы получаем довольно детальную информацию о том, какие методы API были вызваны:
_gaq.push processing : "[gwo._setAccount,UA-xxxxxxx-1]" _gaq.push processing : "[gwo._trackPageview,/xxxxxxxxxx/test]" _gaq.push processing : "[_setAccount,UA-xxxxxxx-2]" _gaq.push processing : "[_setAllowAnchor,true]" _gaq.push processing : "[_trackPageview]"
Кроме того, показываются предупреждения об использовании устаревших методов и других возможных проблемах. И всё это не меняя трекинг-код.