debugger watches you

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

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

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

Similar Posts

  • Про евро 2012

    “Із задоволенням повідомляємо, що Вашу заявку на придбання квитків на матчі УЄФА ЄВРО 2012™ було успішно відібрано”. Никогда не ходил на футбольные матчи, но тут подумал, что всё ж не каждый год у нас такое мероприятие проводится и попробовал принять участие в билетной лотерее (желающих посетить матч больше, чем мест на стадионе, поэтому проводится лотерея…

  • Посольства и очереди

    Сегодня снова ходил в посольство, подавать документы на шенгенскую визу, на этот раз собираемся в Швецию, Стокгольм. Пойти туда можно двумя способами – в порядке живой очереди, или по записи на определённое время, но только на вторник или пятницу. Нас начали чуть поджимать сроки и мы пошли живой очередью в четверг (сегодня), чтобы оставить на всякий случай пятницу про запас.

  • Gcc Addin Roadmap

    Итак, близится момент, когда плагинчик можно будет давать посмотреть наружу, посему меня посетила мысль составить некоторый план дальнейшего развития модуля. Пишу, то, что удалось вспомнить 🙂 Usability: Более корректное расположение настроек проекта в категориях. Добавить опцию генерации мап-файла (сейчас вписывается как additional linker option) Internals: Переписать код вызова компилятора в msbuild-friendly вид, используя Tool concept….

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

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

  • Нас анонсировали

    Ура, свершилось чудо, нашу игру наконец-то анонсировали 🙂 Делаем мы, ни много, ни мало – IL-2 для платформы PSP. Анонс пошёл отсюда: http://www.dtf.ru/news/read.php?id=51492 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit