debugger watches you

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

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

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

Similar Posts

  • Первый раз

    Сегодня я пополнил государственную казну на 255 грн. Полторы недели назад меня опротоколили за превышение скорости и вот у меня в коллекции есть первый протокол, по которому нужно платить 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • погодка

    Что может быть лучше, чем дождь и +4 зимой? Только дождь и -4 зимой! Отковырять лёд со стёкол на машине становится нетривиальной задачей, дойти до этой самой машины тоже 🙂 Вчера на полном приводе было хорошо по этому щастью рассекать, сегодня на переднем с летней резиной было стрёмно 🙂 Share this post: Share on X…

  • RAID-1

    Год назад у меня появилась новая рабочая машинка, внутри неё стояло два 750 ГБ SATA жёстких диска и я не мог решиться – сделать  RAID-0 – и получить большую скорость работы (запись, и соответственно чтение чередуются между дисками, в результате скорость возрастает, но если хотя бы один винт навернётся – хана данным) , или RAID-1…

  • Фигня…

    Я выложил не ту версию гоблина… А так как я счас не дома, то новую версию смогу выложить только завтра 🙁 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • ЕДАПС и люди

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

  • НГ

    Кажись новый гот таки наступил 🙂 Основная гульня уже отошла, остались более “стандартные праздники”. Хотя я, похоже, еще не протрезвел окончательно 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit