debugger watches you

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

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

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

Similar Posts

  • Assembler в Add-in

    Разрабатывая аддин возникло желание добавить возможность просмотра ассемблерного кода для выбранного файла проекта – так же как это реализовано в CodeWarrior. Для этого нам надо сделать следующее: 1. Добавить кнопку в контекстное меню файла. 2. Отдать компилятору на съедение выбранный файл 3. Создать окно отображения кода в студии 4. Вывести в это окно то, что…

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

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

  • После пиффа

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

  • Погодка

    Что-то последнее время погодка все больше напоминает пиррянскую – вчера был снег, сегодня уже ярко светит солнце и даже немножко тепло. Прогноз говорит, что послезавтра опять холодно и снежно будет. Правда прогнозы тоже последнее время не очень хорошо работают, так что все намекает на то, что у нас здесь Пирр – разве что гравитация поменьше…

  • поездочка

    Сегодня утром ездил в аэропорт Борисполь. Так как ехал по единственной в стране автомагистрали, да еще и с хорошим покрытием, то решил проверить возможности машины. Спидометр дополз до 180 км/ч, в принципе можно было еще километров 10 добрать, но как-то не хотелось 🙂 Особо ощущения скорости большой не было, управляемость тоже вроде ничего так, хотя…

  • ___.ru

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