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…

  • Windows 1.0

    Оказывается, 25 лет назад дебютировала первая винда, накопал вот 30 секундный ролик про неё: Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • Reverse-Engineering

    В надежде сделать igo_pc получше я занялсо реверс-инжинирингом (это когда берёшь, дизассемблируешь программу, смотришь на ацкие машинные коды и пытаешься перевести это на какой-нить С++) – процесс доставляет, однако, ещё больше, чем старкрафт в день выхода с мастер-оф-орион2 вместе взятыми! Я уже второй день – потерянный для общества человек, думаю только о том, чтобы найти…

  • Странности жизни

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

  • ___.ru

    Ну так как все уже об _этом_ писали, то я не буду 🙂 Могу только пропиарить blog.gamedeff.com – хорошее место и, надеюсь, таковым и останется. Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit