debugger watches you

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

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

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

Similar Posts

  • Карпаты – тест

    Сегодня буду ставить эксперимент – поездка в карпаты на один день 🙂 Т.е. утром приехали, вечером уехали. Интересно как к этому отнесется организм, да и вапще – надо узнать насколько это прикольно будет. Поскольку если понравится, то можно потом повторять и повторять, благо денег на дорогу по студенческому билету много не надо 🙂 Если ехать…

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

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

  • Воспоминания об Иране. ч.1 – Прибытие

    Предложили мне недавно написать про мои впечатления от Ирана, и я подумал, что действительно, было бы интересно написать, а потом можно сравнить с нынешней ситуацией, т.к. мои воспоминания о той стране заканчиваются десять лет назад. Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • ДР ДМ

    Сегодня праздновали день рождения Димы и Макса в “бочке” на петровке, все было как обычно – пьянка, рассказы, разговоры и все такое, но потом там начали праздновать “хеллоуин” и стало все намного интереснее. Начала ходить девушка-чертенок и предлагать посетителям раскраситься, ну а так как я не мог пропустить такое, то получилось вот что: А вот…

  • Ночная по Киеву

    Ездил вчера-сегодня в “велороллерскую” ночную по Киеву. Это такая штука, когда собирается куча велосипедистов и ролиководов и катаются по городу по определённому маршруту. Езда идёт по дорогам общего назначения, то есть по тем, где ездят машины, но, в принципе, есть security группа – это опытные велосипедисты, которые ведут всех и стараются удержать их в некоторых…

  • Assist

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