debugger watches you

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

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

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

Similar Posts

  • starcraft II beta

    Вчера утром в почте я обнаружил инвайт на бета-тест второго старкрафта. Очень приятная неожиданность, ну очень! 🙂 Вечером я до него наконец-то добрался и сел чуток “потестить”. Итак, в бете доступен только мультиплеер, работает автоматическая система подбора противника по уровню профессионализма, можно обойтись без неё, но я до этого пока не добрался, поставил себе новичка…

  • Движение камеры

    Сегодня наконец занялся доводкой движения камеры вокруг персонажа – после того, как она начала крутиться, я почти родился заново 🙂 Усердие удвоилось, так что скоро наверно буду делать очередной релиз, но в котором уже можно будет хоть как-то интересно бегать по прото-уровню. Недавно удалось удвоить ФПС – что не может не радовать 🙂 На данный…

  • Интернет радио

    Я настроил и запустил на одном из своих серверов ретранслятор радио Digitally Imported – типа отмываю траффик, делаю его украинским, жыыр! Самое главное, то, что оказывается AAC музыка, в отличие от MP3 дает в 4 раза меньший траффик при незначительном ухудшении качества – 24 kbps. Я посмотрел график загрузки сервера при включенном радио – мне…

  • Техосмотр

    А знаете ли вы, что теперь легально пройти государственный ТО не так уж гемморно? Я вот тоже не знал. А моему отцу, находясь в отпуске стало интересно, он попробовал и у него получилось. В общем рецепт следующий: Сначала нужно получить медсправку (где-то за 160 грн делается), в принципе – она всегда должна быть, но поскольку…

  • Direct sound

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

  • pre-КРИ 2007

    Сегодня вечером в восемь часиков поезд в Москву. Едем на КРИ, правда без докладов, надеюсь, что на следующий раз уже докладик какой-нить прочитать смогу. До встречи там, или уже здесь, после конференции 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit