debugger watches you

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

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

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

Similar Posts

  • Hammerwars

    Ура, наш мегапатч для европейской версии hammerwars прошёл QA и скоро выйдет на полки Playstation Store. На самом деле это даже не патч, это наполовину переписанный продукт, т.к. в то, что вышло весной играть можно было с большим трудом. Но теперь вроде даже получилась игра! Из-за проблем с коллизиями пришлось переписывать физику, взяли модуль коллизий…

  • Rhythm of War

    Анонс, штоли 🙂 Надеюсь, что скоро релизнемся. http://rhythmofwar.com Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • уфф

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

  • Снова карпаты

    На выходных я опять побывал в карпатах, на этот раз уже целых 2 дня в Пилипце. Впечатления сугубо позитивны 🙂 Теперь попробую подробнее 🙂 Приехали группой из 11 человек в Воловец в половине девятого утра, где нас встретил дядька на микроавтобусе, которому мы предусмотрительно позвонили заранее. Доехали до села, поселились в хате (тоже договорились заранее)…

  • Зима

    Нучо, вот она – родимая! И хотя температура ещё держится +1 – +3, снега намело – мама не горюй! Расчехлю-ка я сегодня лыжи и подготовлю их к завтрашнему дню – поеду(ем) на ПЯ, вспоминать, а как это ездить на лыжах, особенно после роллов 🙂 Share this post: Share on X (Twitter) Share on Facebook Share…

  • Предвестник транспортного коллапса

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