debugger watches you

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

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

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

Similar Posts

  • Она!

    Вот она, моя новая подружка 🙂  Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • Rollin

    Сёдня в моей жизни произошёл переворот. Собрались мы сегодня попить пива с друзяками. Собралось нас семь человек, wild_angeli приехала на роликах, потом ещё наш экс-староста пришёл с роликами, и тут меня посетила мысль, что в принципе иметь в загашнике ролики – это неплохо, поэтому предложил народу прогуляться в магазин, обуть меня 🙂 Купили нечто под…

  • Выпивка

    Вчера посидели в “орехе” с Олегом и Машей – сегодня я осознал, что смешивать пиво с коктейлями – это зло, может и меньшее чем смешивание с коньяком, но все равно – зло. Сегодня башка слегка гудит и хочется спать 🙂 Вот с этим мы смешивали:   Share this post: Share on X (Twitter) Share on Facebook Share on…

  • Здоровый сон

    Нет, все-таки надо высыпаться, судя по моему организму, у невыспавшегося чела производительность труда стремится к нулю. Я весь день сижу на форуме и в чате и нифига не сделал по работе до сих пор. И наверно не сделаю 🙂 Надо хотя бы идеи позаписывать, которые иногда все-таки меня посещают 🙂 Share this post: Share on…

  • Rhythm of War

    Анонс, штоли 🙂 Надеюсь, что скоро релизнемся. http://rhythmofwar.com Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • Переезд: финал

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