<rmcreative>

RSS

Все заметки с тегом «Отладка»

  1. Дебаггер для Yii 1.1 портированный из Yii 2

    30 августа 2013

    Роман Журавлев портировал отладочный инструмент из Yii 2 для использования с 1.1. Его пост на хабре описывает детально возможности и настройку.

    Читаем

    10 комментариев
  2. 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", не выводится и в лог не пишется.

    4 комментария
  3. ratchet.io

    5 февраля 2013

    В конце января Кирилл kirs показал мне ratchet.io. Штука потрясающая.

    В сервис можно отправлять логи и трейсы ошибок. Он за нас их группирует, сортирует по важности и позволяет помечать как решённые.

    Ошибки и трейсы можно отсылать откуда угодно. Специальные решения есть под браузерный JavaScript, Python, Rails, PHP, Node.js, Flash, серверные логи, Airbrake. В качестве бонуса инструмент отлично настраивается, умеет создавать тикеты в различных системах и имеет неплохой API.

    Пока-что всё бесплатно, но заплатить за такое вполне можно.

    Пользуемся

    Тем, кто использует Yii будет немного приятней. В YiiExt есть готовое решение для интеграции в ваши проекты.

    19 комментариев
  4. Скрытые возможности инструментов разработчика Chrome

    5 октября 2012

    Мегаполезная презентация о скрытых возможностях отладчика Chrome. Нашёл для себя несколько очень полезных штук и собираюсь попробовать оказавшийся очень простым API.

    Рассматриваем

    7 комментариев
  5. 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. По прежнему бесплатен и очень удобен.

    8 комментариев
  6. Firebug на iOS

    10 июля 2012

    Понадобилось поотлаживать CSS на iPad в его iOS-Safari. Оказалось, ничего кроме довольно ущербной отладочной консольки на нём нет. Зато есть способ запустить Firebug lite. Правда, не совсем тривиальный.

    Проблема в том, что букмарклеты просто так в мобильный Safari не добавить. Но способ есть:

    1. Идём по адресу http://www.thecssninja.com/javascript/iphone-bookmarklet.
    2. В разделе «I get it just give me the bookmarklet» щёлкаем неприметное слово «here». Потом щёлкаем его ещё раз и добавляем полученный адрес в закладки.
    3. После сохранения удаляем из адреса закладки всё до #removeme_ включительно.
    4. Идём на сайт Firebug lite.
    5. Используем ранее добавленный букмарклет, затем щёлкаем по «Firebug Lite» и, опять же, удаляем всё до #removeme_ включительно.

    Вот и всё. Теперь у нас есть букмарклет, подгружающий Firebug lite. Работет он на iPad плохо, но это намного лучше, чем отлаживать вслепую.

    8 комментариев
  7. Поиск трудновыловимой ошибки делением пополам

    6 июня 2012

    Случается так, что день потрачен на попытку обнаружить причину ошибки, но дело так и не сдвинулось с мёртвой точки. Например, огромная куча JavaScript ещё вчера работала, а сегодня уже отказывается. Причём проявляется это на тестовом сервере, где эта самая куча сжимается и объединяется в один файл.

    Для подобных трудновыловимых ошибок, как, впрочем, и для многих других подходит деление пополам.

    Если используется система контроля версий, откатываемся на некоторое время назад и смотрим, есть ли ошибка. Если есть — откатываемся ещё. Если нет — идём вперёд ровно на половину. Так мы получим ревизию, которая всё испортила. Далее дело за малым.

    Примерно так же можно поступать в вёрстке, если вдруг вылез супербаг. Убиваем половину кода и смотрим, остался ли баг.

    Плюс такого подхода в том, что ошибка гарантированно локализуется. Минус — это не быстро.

    9 комментариев
  8. Opera Dragonfly 1.0

    5 мая 2011

    Те, кто не следил за развитием аналога Firebug в Opera, будут приятно удивлены стабильным релизом Dragonfly. Отладочный инструмент Opera стал действительно полезным и теперь не особо уступает аналогичным решениям Firefox и Chrome.

    Читаем анонс на Хабре

    4 комментария
  9. Сообщения об ошибках и хороший код

    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 можно подсмотреть в официальной документации.

    22 комментария
  10. Отладка 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]"
    

    Кроме того, показываются предупреждения об использовании устаревших методов и других возможных проблемах. И всё это не меняя трекинг-код.

    2 комментария