debugger watches you

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

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

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

Similar Posts

  • После пиффа

    Попили пива с Серегой, обсудили все что можно, пришли к выводу, что законодательство в стране хреновое и поэтому надо больше бегать 🙂 В том смысле, что обсуждали проблемы человека с безопасностью и оказалось, что стреляющее носить по закону низзя, холодное тоже, а даже если можно, то хрен это применишь, пока будешь доставать, дадут по голове……

  • Заметки

    Использование неинициализированного флоата, члена класса может привести к зависанию, хотелось бы знать почему… ЗЫ: 3 дня убил, на то, чтобы вычислить это место 🙁 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • История родного города

    Бродил я по просторам интернетов и наткнулся на эту прекрасную ссылку: Киев Сквозь Время А там, карта Киева 1914 года и куча фотографий того времени, стоящих рядом с современными – для сравнения, и краткая историческая справка описывающая место, при желании можно почитать и расширенную. Очень удивительно и познавательно. Кто бы мог подумать, что в центре…

  • Техосмотр

    А знаете ли вы, что теперь легально пройти государственный ТО не так уж гемморно? Я вот тоже не знал. А моему отцу, находясь в отпуске стало интересно, он попробовал и у него получилось. В общем рецепт следующий: Сначала нужно получить медсправку (где-то за 160 грн делается), в принципе – она всегда должна быть, но поскольку…

  • Гурт Йогурт

    Ходили вчера нашим дружным рабочим коллективом + ddima, который находится у нас с дружеско-рабочим визитом, в ирландский паб “to dublin”. Подают там ирландское пиво, в том числе и “Гиннес”, но мы то туда пошли совсем не за этим 🙂 Вчера там выступал “Гурт Йогурт” (группа Йогурт) – ребята, старые друзья Квакса (майн директор), которые играют…

  • Новый нетбук

    Нахлынуло на меня недавно желание “апгрейднуть” свой нетбук. Старый MSI Wind U100 с атомом внутри и 2ГБ памяти как-то уж очень медленно всё пережёвывал, а жил всего полтора часа от силы…
    И вот я купил новый аппарат под названием Gigabyte Q1105…