debugger watches you

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

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

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

Similar Posts

  • почти зима

    Вот она, почти зима, уже выше +10 бывает только в солнечный день на этом самом солнце, пожелтевшая листва почти опала – эх… тоскливо. Вчера вот даже было закрытие роллерского сезона – собрались большой кучей народа на республиканском стадионе, покатались где-то часок и разъехались – холодно однако, и темно. Хочу лета! Share this post: Share on…

  • Отчет о карпатах

    В воскресенье я был в карпатах. В субботу вечером мы с одногрупницей Иркой сели в поезд и поехали в карпаты кататься на лыжах на один день. В 7:30 мы выпрыгнули из вагона в Славском и потопали в поисках кафешки, чтобы попить кофе и раздуплиться после поезда, поскольку мы ехали в купе с молодыми ребятами и…

  • История с PayPal

    Расскажу про историю, которая со мной недавно произошла. Оплачивал я на ebay заказ fm-transmitter’a для ипода, и вдруг paypal сообщает, что транзакция не прошла. Смотрю на портале банка – деньги списаны, захожу в админку paypal, а там сообщение “ваш аккаунт был limited бла-бла-бла, всякие рассказы про борьбу с нелегалами и повышением безопасности. Для того чтобы…

  • MsBuild покорён

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

  • Закрытие лыжного сезона 2

    Отдохнули оч хорошо, я бы сказал офигенно замечательно 🙂 Началось всё с того, что мы покурили кальян и в половине второго ночи попёрлись на Драгобрат в Карпаты. Сезон повторно закрыть, одного раза мало было 🙂 Приехали в Ясиня, пересели в газенваген и поднялись на Драг. Поселились, позавтракали и пошли кататься, правда не все. Некоторые решили…

  • Почта

    Получил сегодня вечером (точнее нашел в ящике) уведомление о приходе “простой бандероли”, которую можно получить на почте. Надеюсь это мой заказ с eBay, завтра утром думаю узнать точнее. Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit