Грубая сила

Дибажил я тут одну программку. Вылетала она при выходе, при чём совсем в том коде, который писался нами, и от которого есть исходники. Вылетала она в коде движка, от которого есть только либы и заголовочные файлы.
Происходило всё очень просто – access violation writing location 0xfeeefeee, что обозначает попытку записи в уже освобождённую память.
В ход пошло всё, что было под рукой – дизасм, просмотр дампов памяти, брейкпоинты на запись/чтение памяти. Даже квакса чуть задействовал, правда он пришёл, показал как правильно пользоваться тем, что было и ушёл. Но, при этом он подсказал одну очень умную вещь – почему бы мне не порыться получше в SDK движка и не поискать pdb (Program database – отладочная информация) от этой дллки. Я порылся, и действительно обнаружил оную, подключил – и вуаля – сразу всё стало на свои места. Одного взгляда на call-stack хватило, чтобы понять, кто и кого обманывает. Теперь уже осталось совсем немного – выяснить как именно происходит нарушение записи и починить.

Собсно резюме – грубая сила всегда будет уступать думающему мозгу. Даже в программировании 🙂

Similar Posts

  • Пластиковые карточки

    Сегодня в банке взял выписку со счета карточного. Надо было для того, чтобы подтвердить счет на пейпеле. Решил заодно подсчитать расходы по Турции, точнее перевод валют. Вывод меня порадовал: Карточка оказалась выгоднее налички Вот подсчеты Выписка: Сумма: 165 YTL Комиссия: 5.72 грн. Общая сумма: 578.15 грн Считаем: 165 лир – это 114 долларов по курсу…

  • Диггеры

    Вчера чуть приобщился к движению диггеров – побывал на маленькой экскурсии в киевской дренажке, в её части с названием Никольская Дренажно-Штольная Система – основная часть построена ещё при царе Николае. Довольно интересно там под землей, темно и тихо – только журчание воды слышно, или такой себе дождь в Царском Колодце – место куда стекается множество…

  • Gcc Addin Roadmap

    Итак, близится момент, когда плагинчик можно будет давать посмотреть наружу, посему меня посетила мысль составить некоторый план дальнейшего развития модуля. Пишу, то, что удалось вспомнить 🙂 Usability: Более корректное расположение настроек проекта в категориях. Добавить опцию генерации мап-файла (сейчас вписывается как additional linker option) Internals: Переписать код вызова компилятора в msbuild-friendly вид, используя Tool concept….

  • Гудаури – начало

    Закончился тут в воскресенье отпуск недельный, как оказалось – маловато, но тож ничего 🙂 Ездили мы толпой в 6 человек в Грузию, на горнолыжный курорт Гудаури в одноимённом селе, что в 110 км от Тбилиси. Отдохнули замечательно, я об этом ещё попробую написать/показать, а про саму Грузию могу сказать, что похоже, действительно правда – криминала…

  • Google Crashpad

    Для того, чтобы собрать crashpad под Windows с DLL runtime (/MD /MDd), нужно создать в своём домашнем каталоге (c:/users/konst например) подкаталог .gyp и в него положить файл include.gypi со следующим содержимым: {   ‘target_defaults’: {     ‘configurations’: {       ‘Release’: {         ‘target_conditions’: [           [‘OS==”win”‘, {             ‘msvs_settings’: {                ‘VCCLCompilerTool’: {                   ‘RuntimeLibrary’:…

  • ПДД

    Таки приняли! Теперь и у нас смогут пользоваться камерами и фотоаппаратами для фиксации нарушений, эвакуаторы будут работать вполне легально, а штрафы снова смогут брать по месту (но не все, а особо облачённые доверием). Ввели систему контроля систематических нарушений – будут баллы выдавать – набрал 30, отдохни от вождения. За систематическую пьянку на 10 лет общественного…