debugger watches you

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

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

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

Similar Posts

  • Техосмотр

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

  • лытдыбр

    Вышел утром на балкон с чашкой кофе – а там отакое от: Мобилография конечно УГ, но, всё равно, вид свежевыпавшего снега приятный и спокойный – тишь да благодать. Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • MsBuild покорён

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

  • КРИ-2006

    Итак, выставка прошла и мы наконец-то добрались домой. Хочу подбить некоторые результаты. Выставка – это супер 🙂 При чем я полностью поддерживаю в мнении, что реально конференция – это не доклады, а реальное общение с реальными разработчиками, и как он же точно подметил, что посещение выставки – это +10 к морали девелопера. Было очень интересно…

  • Открытие сезона 2009 II

    После того, как в Славском нас постигла неудача со снегом мы решили не терять времени и поехать на Буковель – где-то 220км по заснеженным дорогам и возможность успеть на вечернее катание с 5 до 8. Успели с 6 до 8 🙂 Переночевали и целый день утюжили склоны Буковеля и соседних гор, к сожалению работало только…

  • Снова пьянка

    На выходные ездили на дачу к нашей малой, формально – праздновать защиту магистров, реально – просто “погулять”. На этот раз было прикольнее чем прошлые пьянки – там есть футбольное поле. Мы посидели на пляже и пошли играть в футбол. Хорошая игра, тем более на фоне ЧМ 🙂 Отбегались так, что когда вернулись назад, то и…