debugger watches you

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

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

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

Similar Posts

  • Жизнь без авто

    Я думал, что жизнь без машины мне покажется сущим адом – забитые маршрутки, которых еще и надо дождаться, вопли о том, что кто-то кого-то не пропустил и все такое, почти так оно и было, если бы не одно но – куча симпотных девушек! Блин – это так прикольно перемигиваться с ними и уступать им место…

  • Румыния: день 5 (последний)

    30.04.2008 Среда, 10:00 (окрестности Куртеа де Аргеш) Проснулись в палатке, осмотрелись, погрелись на солнышке, позавтракали и отправились к Видрару. При свете дня горы выглядели намного дружелюбнее чем предыдущей ночью, мы остановились возле плотины, теперь уже для «экскурсии». Дамба не зря входит в пятёрку грандиознейших в Европе. Её высота 166 метров, а протяжённость – 305, озеро,…

  • Батчи

    Вот есть такая монструозная вещь, как batch files в виндовсе, намного неудобнее любого sh или perl, но! Зато процессор оных стоит на каждой машине с виндовсом, а значит у каждого художника или геймдизайнера (или бухгалтера, клерка и кто там ещё пользуется компьютером в других отраслях). Так вот, о чём это я – о том, что…

  • пушной жжод (+ немного орхетектуры)

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

  • Открытие журнала

    Вот и я заразился новомодной болезнью блоггинга 🙂 Тоже завел себе ЖЖ, надеюсь проболею еще долго, тенденция к чему-то такому у меня начала проявляться раньше – я начал писать daily journal в палм 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit