debugger watches you

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

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

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

Similar Posts

  • PostgreSQL backup to Azure

    С появлением облачных хранилищ стало грешным не использовать их возможности по хранению террабайтов данных за копейки, поэтому будем сохранять туда Continuous Archive данных из PostgreSQL. В нашем случае действие происходит на базе Ubuntu 14, PostgreSQL 9.5 установлен локально. Первым шагом нам необходимо установить сам pghoard и supervisor, т.к. systemd нет, а запускать демона с системой…

  • x3m

    Наконец-то пришла суббота 13, мы отыграли и вчера (а точнее уже сегодня) финишировали в экстремальном квесте x3m, проходившему по Киеву и области. Мероприятие отличается от других квестов тем, что содержит много спецэтапов экстремального характера, тут и дюльфер (вертикальный спуск по верёвке, а ля спецназ с вертолёта), преодоление препятствий в верёвочном городке (на высоте 10-15 метров…

  • Hammerwars

    Ура, наш мегапатч для европейской версии hammerwars прошёл QA и скоро выйдет на полки Playstation Store. На самом деле это даже не патч, это наполовину переписанный продукт, т.к. в то, что вышло весной играть можно было с большим трудом. Но теперь вроде даже получилась игра! Из-за проблем с коллизиями пришлось переписывать физику, взяли модуль коллизий…

  • Playstation 3: Media Edition

    PS3 крутая весч, слов нету, но, пока что с точки зрения медиацентра она проигрывает PS2 с SMS (simple media system). Да, она поддерживает uPnP (DLNA) – протокол для упрощения стриминга всякого видео и музыки с серверов, поддерживающих данные протоколы (цифровой дом), но что толку, если для корректного отображения видео сервер его отдающий, должен заниматься перекодировкой…

  • HDD

    Вот купили вы новый винт, который в 8 раз больше вашего нынешнего и решили старичка отправить на покой. Для этого нужна мелочь – перенести винду. Напрямую это сделать не получится, потому что она, сцуко (с), хитрая, поэтому пойдём более изощрённым путём и склонируем её при помощи norton ghost. Всё вроде бы ништяк – на новом…