debugger watches you

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

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

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

Similar Posts

  • iGo 8 PC

    Есть такие гаджеты – GPS навигаторы, коих развелась тьма тьмущая, я сам с таким зверьком довольно долго прокатался. Один из самых удобных (с моей точки зрения) тот, на котором стоит IGO. Может быть из-за того, что я очень долго с ним дружил, а может фактический факт, но это самая удобная в пользовании программа, которую я…

  • Console vs PC

    Почему я думаю, что консоли рано или поздно окончательно похоронят PC. А потому что у первых юзабилити (удобство и простота использования) в стопицот раз выше! Как происходит процесс “поиграть” на приставке. Покупаем игру в магазине, вставляем диск в привод, нажимаем кнопку “поиграть” игра стартует и через секунд 30 мы уже смотрим вступительные ролики и игровое…

  • Свадьба

    Недавно участвовал в свадьбе Ленки Савченко, теперь уже Анниной. Интересная штука эта свадьба – как-то не осознаю я, что она уже замужем и все такое. Начинаю понимать теперь, почему у меня мама одну свою подружку называет девичьей фамилией, хотя уже дофига лет с ее свадьбы прошло. Еще я наконец оцифровал и сжал видео со свадьбы…

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

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

  • Almost Лето

    В Киеве уже почти неделю +28, именно столько показывает термометр в гугл-десктопе и я бы подумал, что он сломался, но в машине термометр показывает столько же. Интересно, что если раньше жара вызывала непреодолимое желание свалить куда-нить подальше, то теперь всё как-то спокойно – меня практически всё устраивает, надо только море под бок перенести, и всё…