debugger watches you

Сидел я на выходных и развлекался отладкой одного production софта, который отлично работал на линуксе, но после того, как предыдущий сервер сдох, а на новом решено было ставить FreeBSD, обнаружилось странное выпадание программы, вместо корректной работы.
Начал я гуглить туториалы по gdb и заниматься отладкой. С горем пополам обнаружилось, что происходит банальный проезд по памяти. Но так как код чужой, разбираться в нём лень, да и времени не особо много, то пришлось ходить по коду через step next и смотреть значение переменной-жертвы. Попутно читая туториал глаз зацепился за слово watch – прочитав внимательней оказалось, что можно ставить breakpoint на изменение значения переменной – алилуйя! В доке написано, что если процессор поддерживает, то будет аппаратно работать, а если нет, то программно и в разы медленней. Вторым моим удивлением оказалось, когда gdb сказал, что hardware watchpoint set. Тут я совсем офигел – сколько уже работаю с x86, а о таком и не знал.

В общем поставил я watchpoint, запустил – первый раз оно брякнулось в том месте, где переменная инициализируется, а второй раз – о чудо – именно там, где был проезд по памяти. Смотрим стек вызовов и наслаждаемся полученным великим знанием.

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

Similar Posts

  • Фотография

    Меня начала интересовать фотография, правда не настолько, чтобы покупать ацкую зеркалку за кучу баксов, но всё же. Изучаю всякие доки, очень полезно, оказывается, знать о композиции кадра – куда помещать главное, а куда второстепенное. Думаю, что очень важно даже для мыльничных фотографий – чтобы показ оных не вызывал у жертв желания сразу же закрыть альбом….

  • Assist

    Visual Assist хорош всем, кроме одной мелочи – он тормозной, как виндовс 98 на 486 машине. Сегодня меня достало то, что после каждого сохранения можно идти пить чай, потому что происходит это ну очень долго. Секрет оказался простым – авто-бекап файлов, который делает ассист. Однажды я уже сталкивался с его работой, после краша студии он…

  • iPod autopsy

    Сломалсо значиццо мой ипод. Точнее не сломался а просто перестал автономно работать, аккумулятор стало быть сдох, а так как ремонт в наших краях стоит дороговато, что-то в районе ста баксов, то даже не почесав голову я полез на eBay и заказал там новенькую замену батарее. С доставкой из любимого города Гонг-Конга – она обошлась аж…

  • Всё новое – хорошо забытое старое

    Возникла у меня накануне насущная необходимость обработки игровой логики (триггеры), но при этом скриптинг у нас ещё совсем не готов, а результат нужен вот-вот. предложил глянуть на редактор уровней от старкрафта, я его открыл, посмотрел, посоздавал триггеры, подумал и меня осенила мысль, что такого функционала для нас должно хватить с головой и ещё останется 🙂…

  • Отчёт о поездке в Одессу

    День первый: Адесса. На «женский праздник» мы отправились в ранне-весеннюю Южную Пальмиру. Выехали в четыре утра из Киева колонной из четырёх машин, впрочем красный лансер икс Ренегата сразу её сломал и рванул вперёд с криками «не могу я ехать 130 км/ч – это медленно», ну а мы оставшейся троицей неспешно «поползли». Почти всю дорогу нас…

  • И снова горы

    Славское снова удивило. И довольно приятно. Всю дорогу нас спрашивали куда мы едем и зачем, ведь там нету снега, а мы говорили, что если не будет, то мы с горя напьёмся на горе или поедем во Львов. Приехали, в Славском снега не было совсем. Мы прикинули что и как, и пошли в прокат “одевать” в…