debugger watches you

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

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

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

Similar Posts

  • Гоблин о журналистах

    Почитал статейку, которую налабал славноизвестный Гоблин. Задумался… Если так посмотреть, то все, что он описал происходит не только в журналистской среде, а и во всех остальных сферах жизни, например в геймдеве 🙂 Достаточно посмотреть на то, во что превращается форум gamedev.ru – а превращается он тоже в какое-то стадо, которым рулят те же подростки, которые…

  • КРИ-2006

    Итак, выставка прошла и мы наконец-то добрались домой. Хочу подбить некоторые результаты. Выставка – это супер 🙂 При чем я полностью поддерживаю в мнении, что реально конференция – это не доклады, а реальное общение с реальными разработчиками, и как он же точно подметил, что посещение выставки – это +10 к морали девелопера. Было очень интересно…

  • Чудеса в решете (или упрощение визового режима с ЕС)

    Внезапно оказалось, что теперь не надо подавать справку с работы (которая про зарплату и отпуск), справку из банка (с состоянием счёта) и копию трудовой, чтобы оформить краткосрочную визу. Достаточно анкеты с фото, паспорта (куда ж без него), бронировку жилья (или приглашение) и мед. страховку (тоже полезная вещь). Афигеть, так сказать. Вот ссылка на достоверный источник…

  • Прошедшая неделя

    Summary: -Приехали из карпат. Ездили паравозом, большой сборной компанией (человек 60), состоявшей из представителей тростян-кома, сноуборд-ком-уа, мицу-клуба и представителей фирмы элан, в Ивано-Франковск, оттуда в Ясиня из которых на мегатранспорте ГАЗ-66 поднялись на Драгобрат, где тестировали новую коллекцию элановских лыж. После этого я понял, что катаюсь на дровах 🙂 Вечером завалило снегом, на следующее утро…

  • уфф

    Я наконец-то начал высыпаться и возвращаться к нормальной жизни, вчера даже удалось часик поиграть в X3 🙂 Ненавижу говнопрограммера, который оставил мне в наследство софт управления сервером. Ну какому нормальному человеку пришло бы в голову кинуть конфиг и библиотеку часто-используемых функций в каталог с установленным перлом??? Это как кинуть myshit.h в какой-нить c:\msvc8\vc8\include Благодаря этому…

  • Возвращение

    Вот наконец-то прилетел назад из Турции, и завтра уже идти на работу. Но теперь это сделать значительно легче чем раньше, все-таки 2 недели отпуска – это хорошо. Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit