debugger watches you

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

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

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

Similar Posts

  • В поисках работы

    Запостил вчера ночью на геймдев-форуме сообщение о поиске работы. Откликнулось целых два человека, один, правда, я так понял хотел просто позвать в “энтузиастическую” разработку, а второй предложил кинуть ему резюме для более детального анализа. Вот интересно, чем это закончится. Я похоже к этому очень серьезно отношусь, весь день на нервах. С другой стороны оно и…

  • Windows 1.0

    Оказывается, 25 лет назад дебютировала первая винда, накопал вот 30 секундный ролик про неё: Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • Домашний медиацентр

    Заболел я тут аккурат к выходным, и хотя на улице стояла отличная погода – мне пришлось валяться дома на постельном режиме. Почему-то летняя простуда – очень валящая с ног штука. Ну а раз я оказался на целых несколько дней заперт дома – то решил, наконец-то, довести до конца начатое дело – превращение Playstation 2 в…

  • Гудаури – начало

    Закончился тут в воскресенье отпуск недельный, как оказалось – маловато, но тож ничего 🙂 Ездили мы толпой в 6 человек в Грузию, на горнолыжный курорт Гудаури в одноимённом селе, что в 110 км от Тбилиси. Отдохнули замечательно, я об этом ещё попробую написать/показать, а про саму Грузию могу сказать, что похоже, действительно правда – криминала…

  • Фигня…

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