debugger watches you

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

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

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

Similar Posts

  • Direct sound

    Мое серьезное знакомство с майкрософтом началось с дотнета. Я офигел насколько круто и удобно они сделали платформу, как легко и быстро все делается, в общем я понял, что мсовцы переродились. Но вот мне понадобилось вместо OpenAL писать под чистый DirectSound, я офигел 🙂 Целый день потрачен на то, чтобы банально загрузить звук в буфер и…

  • Крым

    Съездил в Ялту на выходных, очень здорово, особенно то, что на самолете. У них сейчас зимние скидки и всякие акции, поэтому цена очень даже сопоставима с поездом, но скорость и комфорт всяко выше. Да и смена обстановки – это позитив, как ни крути 🙂 Особенно такая. Были на Ай-Петри, во второй раз за зиму увидел…

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

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

  • Румыния: день 4

    29.04.2008 Вторник, 11:00 (Синая) Мы покинули гостеприимную Синаю и взяли курс на Бузау – грязевые вулканы. Выходя из гостинницы мы встретили гидов и знакомых представителей Укррома, через которых мы, собственно, и открывали визы. Нам доверительно сообщили, что администрация посчитала нас очень тихими и спокойными (наверное они ещё не нашли прожжённый кальяном ковёр). Хотя, с другой…

  • Про работу

    Сегодня, наконец-то, подтвердилось, что ошибка, с которой мы боремся с начала недели – это баг в компиляторе. Отчёт уже принят афтарами и они чинят, теперь ждём патча. Кул, не каждый день находишь баги в компайлере 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit