debugger watches you

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

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

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

Similar Posts

  • Пешеходная жизнь

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

  • Выпивка 2

    Нда… В орехе оказывается был детский лепет 🙂 Вот корпоративная пати – это оно, в общем я больше в такие игры не играю – в смысле стока не пью 🙂Зацените 🙂 а вот что бывает через некоторое время 🙂 На всяк случай замечу – меня здесь нету 🙂 Share this post: Share on X (Twitter)…

  • Позднеосеннее катание

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

  • Почта

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

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

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

  • ЕДАПС и люди

    Побывал я сегодня в таком замечательном месте, как “межрегиональный центр бла-бла-бла по оформлению загранпаспортов”, который находится на территории концерна ЕДАПС – крутых производителей всяческих защищённых бланков, даже для интерпола документы изготавливают. Ездил я туда оформлять новый загранпаспорт, потому что старому осталось полгода жизни и всего 3 чистых странички. По древней советской традиции занимать очереди задолго…