debugger watches you

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

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

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

Similar Posts

  • Батчи

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

  • История с PayPal

    Расскажу про историю, которая со мной недавно произошла. Оплачивал я на ebay заказ fm-transmitter’a для ипода, и вдруг paypal сообщает, что транзакция не прошла. Смотрю на портале банка – деньги списаны, захожу в админку paypal, а там сообщение “ваш аккаунт был limited бла-бла-бла, всякие рассказы про борьбу с нелегалами и повышением безопасности. Для того чтобы…

  • адвенчура

    за прошедшие праздники проехал 4300 км. Из них 2500 по Румынии. Details will follow 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • После военки

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

  • Автоквест

    Подозреваю, что существует мало людей, которые бы не слышали когда-нить о странном мероприятии, под названием автоквест. Ну это то, где странные люди гоняют ночью по городу и что-то там ищут. Так вот, в субботу я на такое мероприятие попал. Очень понравилось! Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share…