debugger watches you

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

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

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

Similar Posts

  • Немецкий шенген

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

  • Снова автомобиль

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

  • PSP Video

    Как бы я не любил эту приставку, но иногда она своей “юзабилити” ставит в тупик. Что может объяснить удобство просмотра видео на ней? Для того, чтобы глянуть ролик, его надо положить в папку MP_ROOT, внутри которой будет ещё одна дружелюбная – 100MNV01. И в неё вы кладёте заботливо созданный video.mp4 файл. Вот только он называться…

  • Немного авантюризма

    Вчера в 3 часа ночи меня к себе в офис пригласил KVaks, сказал, что если приеду, то даже подарит свою книгу 🙂 Потом он выслал за мной такси. Интересно, что я согласился и приехал, т.е. в 3:30 ночи я был на другом конце Киева и смотрел на PSP 🙂 а также проникался крутизной книжки про…

  • Новый релиз техно-демо игры

    Наконец добил физику, теперь она намного лучше, чем та пародия, которая была раньше. Теперь это целый физический симулятор с обнаружением коллизий 🙂 лежит тут Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • pre-КРИ 2007

    Сегодня вечером в восемь часиков поезд в Москву. Едем на КРИ, правда без докладов, надеюсь, что на следующий раз уже докладик какой-нить прочитать смогу. До встречи там, или уже здесь, после конференции 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit