debugger watches you

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

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

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

Similar Posts

  • Авто

    Начинаешь немного иначе смотреть на дорогу и стиль вождения после того как ты еле успеваешь затормозить перед едущей впереди машиной и думаешь “вуух… пронесло…” и внезапно видишь в зеркале заднего вида машину, которая не успела затормозить и врезается в стоящий за тобой биммер… Этот стук нельзя спутать ни с чем… В общем надо ездить аккуратно…

  • Internet sux

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

  • Герои

    Я подсел на мыло. Смотрю сериал “Герои”, через Bittorrent. Но он реально жжот – довольно-таки интересный сюжет, который довольно интересно поворачивается всё время. Никогда я ещё так не ждал выхода следующей серии и её релиза в P2P сетях 🙂 В этом сериале, кстати, применили очень интересную штуку – Heroes 360 experience. Это некоторые связи с…

  • щотчег

    Вот есть такой счетчик – прикольная штука, только знает ли хоть кто-то – как его интегрировать в ленту сообщений? Чтобы не приходилось раз в сколько-то времени его обновлять? Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • Отчёт. День второй: драгобрат.

    Недоброе утро началось со звонка будильника в восемь утра, от которого я не проснулся, а вот девочки провели небольшой подсчёт, который показал, что в живых нету ни одного водителя 🙂 и поэтому меня поставили перед выбором – или я просыпаюсь сам и сажусь в машину, как пассажир, или меня грузят телом в багажник, чтобы было…

  • msi wind + touchscreen

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