debugger watches you

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

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

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

Similar Posts

  • Техосмотр

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

  • rollin harder

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

  • Google Crashpad

    Для того, чтобы собрать crashpad под Windows с DLL runtime (/MD /MDd), нужно создать в своём домашнем каталоге (c:/users/konst например) подкаталог .gyp и в него положить файл include.gypi со следующим содержимым: {   ‘target_defaults’: {     ‘configurations’: {       ‘Release’: {         ‘target_conditions’: [           [‘OS==”win”‘, {             ‘msvs_settings’: {                ‘VCCLCompilerTool’: {                   ‘RuntimeLibrary’:…

  • Призёры X3M#4

    Ура, мы наконец-то сделали это! Заняли призовое 3 место (из 16) в экстремальном квесте X3M, а по Киеву вообще первое 🙂 Что конечно же не может не радовать. Хочу сказать большое спасибо команде, нашему КЦ, организаторам и соперникам 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email…

  • Hammerwars 2.0

    Ура, вот мы и добрались до полок, подходи, налетай, хаммерварс покупай 🙂 А пока ждём прохождения рейтинга чтобы в америку попасть. Чорт, кто бы мог подумать, что в наше время повсеместной цифры и интернетов некоторые службы работают по обычной почте?! Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on…

  • Четвертьфинал

    Сборная Украины прошла в четверть финала ЧМ мира по футболу 2006, урраа!!! Столько позитива я не получал со времен известных событий 2004 года 🙂 Машины ездили и постоянно сигналили, народ на обочинах подсвистывал и покрикивал. Все-таки такие мероприятия – это великая сила! Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn…