Метка «отладка» - 3

Однажды, холодным зимним вечером, я внезапно вспомнил, что не поделился простым секретом, как добиться простого питоновского счастья за пределами ASCII резервации в такой замечательно-бесплатной IDE как Eclipse с плагином PyDev. Причём счастья с отладкой и честным юникодом, что означает следующее: если вы назвали свою переменную кириллицей, вы сможете посмотреть у неё значение, поставив breakpoint, написать пару строк текста по-русски и у вас ничего не отвалится.
Да-да, уважаемый читатель, Eclipse PyDev не очень-то дружит с символами за пределами 0x7F и отладка очень любит отваливаться всякий раз при попытке прочитать значение кириллической переменной. Да какое там, простое наведение мышкой на юникодовый символ приводит к фатальным последствиям при отладке кода написанного на Python 3.x (UTF-8). Если же настройки вашей файловой системы отличаются от UTF-8, поздравляю, вы не сможете даже запустить ваш скрипт. Я имею в виду именно то, что например под Windows ваш замечательный скрипт с единственным словом по-русски просто выведет из строя PyDev.
Возможно я перестарался, сгущая краски, не пугайтесь, починить это в состоянии мы сами, просто прочитав эту небольшую инструкцию. В награду мы получим бесплатное средство разработки, довольно удобное, фантастически гибкое в настройках и усовершенствовании, вплоть до разработки на нескольких языках, со встроенным инструментом версионирования.
Под катом инструкция и неприличных размеров картинки.
Читать полностью »

Недавно начал работать над созданием плагина для AutoCAD 2009. Пишу на C#. Использую Visual Studio 2012 Ultimate. Так как включение отладки кода при написании плагинов под AutoCAD связано с определенными трудностями и соответственно тратой времени на поиск решения, я решил поделиться своим опытом и представить пошаговую инструкцию, каким образом включить отладку в Visual Studio.
Читать полностью »

Автоматизируем сбор информации о падениях программы

Перефразируя известную поговорку: «не делает багов тот, кто ничего не кодирует». Каждый разработчик умеет и любит делать баги, но не любит потом их исправлять. Ошибки в коде в одном случае приводят просто к некорректной обработке данных программой, а в другом — к исключениям (вылетам, падениям, крашам). В этом посте я расскажу о том, как можно автоматизировать сбор данных о краше программы, чтобы сильно облегчить себе жизнь при разборе и устранении ошибок.Читать полностью »

Существует стереотип, что reverse engineering — это занятие для злых хакеров в темных очках и блестящих кожаных пальто. Под покровом ночи, в перерывах между беготней по стенам и рукопашными схватками с толпами спецназовцев, эти компьютерные нелюди творят страшные взломы программ, пентагонов и прочих баз данных. Сами взломы как правило не требуют никакой предварительной подготовки и занимают считанные секунды. Ну и конечно в процессе практически любого взлома по чОрным экранам адских хакерских ноутбуков с непонятной ОС ползут зелёные кракозяблы и/или крутится какая-то 3D-фиговина…

Как мирный reverse engineering помог чуть чуть улучшить приложение Яндекс.Деньги

Сегодня я хочу отойти от затасканных голливудских штампов про злых компьютерных взломщиков и поведать вам, дорогие читатели, о том как мирный reverse engineering помог чуть-чуть улучшить приложение Яндекс.Деньги. Надеюсь эта история пошатнет устойчивый стереотип, что reverse engineering — это обязательно плохо и нужно только нехорошим людям.
Читать полностью »

Наверняка каждый разработчик модулей для Magento попадал в ситуацию, когда вроде бы все сделано правильно, но не работает. Особенно это касается характерных ситуаций: создал роутер, а выдает 404 старницу, создал лэйaут, а контент не выводится, создал темплейт, а страница по прежнему пуста. Отличительной чертой таких ситуация является то, что как правило Magento никак на них не реагирует (не выдается ошибок, логи остаются пустыми). Именно об отладке таких ошибок и пойдет речь в данной статье.

Вдоволь намучавшись с подобными ситуациями, я собрал небольшую коллекцию советов по разработке и методов отладки модулей, которые позволяют быстро справляться с подобными неприятностями. Особенно полезны они будут новичкам, но и опытные разработчики могут найти для себя что-то новое.
Читать полностью »

Я недавно наткнулся на статью, описывающую простейший грувлет, позволяющий исполнить любой код на Groovy у Вас на сервере. Мне это показалось очень удобным для организации отладочного бэкдора.

Проблема в то, что грувлеты — это всё таки сервер, а у нас есть еще толстый клиент на Swing. Для него мне хотелось бы сделать нечто похожее, но встраивание какого нибудь embedded Jetty или Tomcat только для этого в клиент выглядело как то слишком.

По счастью, мне попалась на глаза и другая статья — про наличие в стандартной библиотеке Java простейшего веб сервера. Вот им то я и решил воспользоваться.
Читать полностью »

Реверс инжинирим игру Hogs of War, часть 1

Мотивация

В связи с испорченным местными властями отпуском приходится занимать свое время чем-нибудь интересным. Например, подлечить старую игрушку, косяки которой не позволяют нормально поиграть на современных ОС, либо поменять несколько байтов для получения разных extra-возможностей just for fun. Подопытным будет игра из далекого 2000 года под названием Hogs of War. Если кто не знает, то это turn-based стратегия, где вам дается команда хрюшек, с помощью которых вы должны ни много ни мало, завоевать мир. В процессе игры в зависимости от результатов можно модифицировать каждую хрюшку, например повысив её в звании. В 2009 Atari объявила о продолжении игры в виде разработки HOW2, но по последним данным проект свернули из-за недостатка финансирования. Ничего приятного.

Цель этой части: исправление бага, при котором блокируется весь рабочий стол, если произошел appcrash по какой-либо причине и подготовка приложения для работы в экранном режиме для упрощения отладки.
Читать полностью »

в 9:48, , рубрики: debugger, perl, отладка, метки: , ,

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

Прежде чем я начну описывать работу с отладчиком, приведу несколько советов, которые помогут выявить некоторые типичные ошибки, еще до запуска debugger:

  • Проверьте ваш синтаксис с помощью ключа -c: perl -c yourprog
  • Используйте use strict, который предотвратит многие ошибки, связанные с названиями переменных и их объявлением.
  • Включайте предупреждения с помощью ключа -w (если вы хотите получать все предупреждения, то можете использовать ключ -W).
  • Более расширенную информацию о неполадках можно получить используя use diagnostics (или -Mdiagnostics из коммандной строки) все сообщения генерируются с помощью perldiag (man).
  • Проверьте вашу программу в режим Taint. При запуске вашей программы с данным ключом -T (легкий вариант -t), каждая переменная вне вашей программы считается инфицированной (tained) и отказывается запускать внешние команды из незнакомых мест.
  • Программа splain. Действует как и use diagnostics, принимает предупреждающие сообщения и преобразует их в детализированные сообщения, но с тем преимуществом, что ничего не включается постоянно в ваш код (perl -w your.pl | splain ).

Теперь непосредственно перейдем к возможностям, которые предоставляет Perl Debugger.
Читать полностью »

Введение

Доброго времени суток!

Однажды передо мною встала задача отловить непонятное падение в моем приложении. Насколько я знал тогда, Android NDK предоставлял возможность отлаживать C++ код, однако я смутно представлял себе, как это сделать. К сожалению, толковой информации по отладке нативного кода было очень мало. Потратив на это дело несколько вечеров, я все-таки разобрался и наладил отладку. Сейчас я расскажу о том, как это можно сделать и расскажу о том, какие грабли могут ожидать вас, если вы задумаете повторить мой путь.

Читать полностью »

Отладка — неизбежный и зачастую очень длительный этап разработки любого приложения. Клиентская веб-разработка в этом смысле не исключение, более того, здесь этот вопрос стоит особенно остро. Если при отладке backend’а область действий программиста ограничена инструментом разработки, то в frontend’е задачу отладки осложняют многочисленные внешние факторы — браузеры. С их многообразием и различиями приходится волей-неволей считаться любому веб-разработчику. Об этом и пойдет речь далее.

Данная статья не претендует на оригинальность. Вполне возможно, что что-то подобное уже было написано ранее кем-то другим. Единственной целью при ее написании было желание автора поделиться своим опытом в отладке JavaScript. Автор уважает мнения других хабрапользователей и никому не навязывает свою точку зрения.

Проблема кроссбраузерности в отладке уже неоднократно рассматривалась на Хабре (1, 2, 3 и др.). Но к сожалению, во всех статьях, ранее освещавших этот вопрос, применялся один и тот же подход к его решению: использование инструментов отладки, специфичных для каждого браузера. Конечно, никто еще не отменял console.log — простой, и в некотором смысле кроссбраузерный, инструмент, хорошо помогающий в отладке. Но его применение опять-таки ограничено наличием в браузере средств отладки. Особенно это касается мобильных устройств, в которых получить доступ к средствам отладки не так просто, а иногда и вовсе невозможно.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js