Обновить
32K+

Отладка *

Поиск и устранение ошибок в коде

25,93
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

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

Время на прочтение3 мин
Охват и читатели6.6K

Мотивация


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

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

Использование отладчика GDB по максимуму

Время на прочтение4 мин
Охват и читатели42K
В нашей повседневной работе, как и всем, требуется много пользоваться отладчиком. В силу специфики работы: (разработка ОС, использование технологий виртуализации наподобие Intel-VT, ит.д.) нам часто требуется использовать отладчик для работы со специфическими случаями: отладка кода загрузчика ядра, отладка загрузчиков виртуальных машин, а так же в принципе обеспечение возможности отлаживать ОС собственной разработки. Именно эти особые случаи так пафосно названы в заголовке ”по максимуму”.

Для решения всех этих задач (и конечно, многих других) мы используем gdb. Возможно использование и таких оболочек как DDD, но лично я предпочитаю использовать cgdb как оптимальный выбор, особенно для случая работы с отладчиком по ssh.
В этой статье мы расскажем о том, как можно использовать gdb для отладки кода загрузочных секторов и загрузчиков.
Читать дальше →

Таинственные знаки на полях — разгадка

Время на прочтение3 мин
Охват и читатели21K
Итак, время для верного ответа на ранее опубликованную задачку. Спасибо всем поучаствовавшим. Первым же комментарием к посту была вывешена вот эта ссылка. Я, признаться, верил, что она появится не сразу и позволит чуть-чуть продлить интригу. Но Хабр есть Хабр и на каждую хитрую гайку тут найдется свой болт с левой резьбой — и это прекрасно, за то его и любим.

Однако не так был прост конкурс, чтобы его можно было выиграть одной лишь ссылкой на MSDN — там объясняются лишь знаки 1, 2, 3, 7 и 8. А вот что означают и чем друг от друга отличаются 4, 5 и 6 — в этом и была сама задача. К сожалению, многие посчитали первый комментарий верным ответом и отказались от дальнейшего участия. А зря. Прошу под кат.
Читать дальше →

Fiddler — помощник в отладке JavaScript

Время на прочтение3 мин
Охват и читатели208K
На Хабре уже упоминалась данная тулза, но как-то в контексте других тем.

What is Fiddler?
Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect traffic, set breakpoints, and «fiddle» with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language.

Fiddler is freeware and can debug traffic from virtually any application that supports a proxy, including Internet Explorer, Google Chrome, Apple Safari, Mozilla Firefox, Opera, and thousands more. You can also debug traffic from popular devices like Windows Phone, iPod/iPad, and others.

To debug applications you've written in Java, .NET, or using WinHTTP, see this page.


Итак Fiddler — прокси, который работает с трафиком между вашим компьютером и удаленным сервером, и позволяет просматривать и менять его.

Подробности

Таинственные знаки на полях

Время на прочтение1 мин
Охват и читатели12K
Многие из вас, возможно, видели всякие загадочные знаки на полях. Нет, не те что на картинке слева :). Я имею в виду значки на полях редактора кода в Visual Studio. Наиболее известными являются иконки точки останова (Breakpoint) и закладки (Bookmark) . Но есть и другие. Я предлагаю небольшой конкурс: вот 8 значков, которые могут появиться на полях редактора кода в Visual Studio 2010 (без всяких плагинов). Первый, кто верно объяснит их все, получит от меня инвайт на Хабр.

Пишите ответы комментариями к этому топику, а у кого нету аккаунта на Хабре — пишите куда угодно и бросайте ссылку в твиттер с хештегом #VsMisterySigns — обещаю всё прочитать. Ответы удобно нумеровать в соответствии именам интовских переменных в коде. Срок приёма ответов — сутки с момента публикации. Объявление победителя — в течение суток по окончанию приёма ответов, развёрнутой статьей в этих же хабах.

P.S. Обратите внимание, №4 и №6 — это не глюк в задании, это разные значки, обозначающие разные вещи. Смотрите внимательно. Все претензии — к дизайнерам Visual Studio.

Upd. Дискуссия в твиттере поактивнее комментов. Дерзайте, друзья, у всех есть шансы.
Upd2. Ставки сделаны, ставок больше нет. Результаты.
Читать дальше →

Самая лучшая просьба о помощи разобраться в ошибке

Время на прочтение1 мин
Охват и читатели895


Разве можно отказать после такой просьбы о помощи?

И подробное описание проблемы, и картинка для настроения

Update: Здесь я не приследую задачу посмеяться над коллегой, наоборот, он на мой взгляд описал проблему очень оригинально, при этом заставив улыбнуться, но улыбнуться по доброму

История одного «очень китайского» телефона

Время на прочтение6 мин
Охват и читатели13K


Путь от “несвяти с сетей” и “спаритьБлютуф” до человеческого телефона

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

Скупой платит дважды...

Так было и со мной, когда примерно два года назад я увидел на очередном китайском сайте смартфон с gps, usb-host’ом, двумя камерами и прочими плюшками за смешные деньги. В тот момент, само словосочетание “китайский телефон” должно было остановить меня, но я уже вписывал пароль от PayPal и скоро эта “прелесть” попала мне в руки…
Читать дальше →

Отлаживаем ошибки доступа к памяти с помощью Application Verifier

Время на прочтение4 мин
Охват и читатели14K
Хабраюзер burdakovd задал в Q&A задачку про C++, vector и запись в чужую память. Задачка, кроме всего прочего, хороша тем, что на ней можно удобно продемонстрировать, как пользоваться инструментом Application Verifier и находить, кто же портит память.

Application Verifier — очень мощный инструмент, кроме диагностики работы с хипом он умеет уйму всего другого, например определять неправильную работу с хендлами, ошибки реализации многопоточности, эмулировать нехватку ресурсов, чтобы проверить корректную работу программы в таких условиях, но об этом как-нибудь в другой раз.

Итак...

25 кадр у Фримена

Время на прочтение1 мин
Охват и читатели4.6K
Просматривая очередную серию мультов Фримена заметил мелькание чего-то похожего на QR код, заинтересовался, нашел этот кадр:


Оказалось действительно код. Нашел онлайн декодер от гугла, который и помог восстановить исходное сообщение:

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


Такая вот вирусная реклама для it'шников.

Кому интересно можете найти сами, на видео, отмотав к 01:59.

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

OpenStreetBugs — лёгкий способ сообщить об ошибке в OpenStreetMap

Время на прочтение1 мин
Охват и читатели1.6K
imageВы, конечно, знаете о свободной карте OpenStreetMap. Это настоящая народная карта, создаваемая такими же людьми как и вы! Это такой же opensource-проект как Linux и как Википедия.

Конечно же, как и в других картах, в OpenStreetMap имеются ошибки, но в отличие от тех же Яндекс.Карт, где ошибки не исправляются годами из-за сложной бюрократической процедуры (я уже не говорю о намеренных ошибках), в OpenStreetMap всё гораздо проще и лучше для всех нас.

С помощью достаточно давно существующего сайта OpenStreetBugs можно в два счёта сообщить об ошибке и через некоторое время получить уже исправленную карту, а чуть позже и скачать к себе на компьютер или навигатор готовую для использования карту. OpenStreetBugs — это простейший способ, с помощью которого каждый может внести свой вклад в составление настоящей народной карты.

Итак, помочь улучшить OpenStreetMap может каждый! Просто зайдите на сайт openstreetbugs.schokokeks.org, приблизьте мышкой хорошо знакомое вам место на карте, кликните по проблемному месту, опишите суть ошибки и нажмите OK.

Если вам понравится, то вы можете стать полноценным участником проекта OpenStreetMap и рассказать где в вашем районе находятся магазины, кафе, аптеки, школы и прочее.
Читать дальше →

Кнопка End взламывает experts-exchange.com

Время на прочтение1 мин
Охват и читатели1.1K
Часто, когда ищу в Интернете ответы на свои вопросы, я попадаю на сайт http://experts-exchange.com

И часто нахожу там ответы с пометкой "Accepted Solution" на вопросы, ответы на которые трудно найти в других местах.

Но проблема в том, что ответы там доступны только для Premium Service Members only. Т.е там нужно оплатить аккаунт. А стоит он там от $12.95 за месяц до $189.95 за 2 года.

Но как-то я задумался, как же они попадают в выдачу поисковиков? Значит, их вопросы и ответы открыты для поисковиков? А как?
Читать дальше →

Ошибка умножения в Excel 2007

Время на прочтение1 мин
Охват и читатели5K
Если в Excel 2007 умножить 850 на 77.1, то результат будет 100000, а не 65535, как ожидается. Более того, если прибавить 1 (=A1+1), то результат будет 100001, а если отнять, то 65534. Случаев, когда Excel 2007 ошибается достаточно много:
Читать дальше →
12 ...
39