debugger watches you

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

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

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

Similar Posts

  • Игра из бек :-)

    Я снова вернулся к написанию игры – подтолкнула меня к этому необходимость делать курсовую работу, в которой надо написать генератор облаков, но как только я прикоснулся, стало ясно, что писать буду снова и много. Сегодня переделал механизм рассылки сообщений о пользовательском вводе, теперь он такой же как в С#, есть эвент (boost::signal), к которому посредством…

  • RA

    А Electronic Arts-то теперь раздают старый добрый Red Alert бесплатно! Today, August 31st, 2008 marks the 13th anniversary of the storied Command & Conquer franchise, which has sold over 25 million copies to date. And to celebrate this milestone and this October’s highly anticipated return to the world of Red Alert with Red Alert 3,…

  • Про евро 2012

    “Із задоволенням повідомляємо, що Вашу заявку на придбання квитків на матчі УЄФА ЄВРО 2012™ було успішно відібрано”. Никогда не ходил на футбольные матчи, но тут подумал, что всё ж не каждый год у нас такое мероприятие проводится и попробовал принять участие в билетной лотерее (желающих посетить матч больше, чем мест на стадионе, поэтому проводится лотерея…

  • Каменец-Подольский

    Каменец-Подольский Прошедшие выходные ознаменовались поездкой в Каменец-Подольский – интересное историческое место. (рассказ приведу с цифрами, чтобы желающие туда попасть могли знать порядок цен) Выехали в субботу вечером на хитром поезде номер 623, хитрый – потому что едет туда целых двенадцать часов, хотя судя по знакам, туда 450 километров. Ехали не очень удачно, было два верхних…

  • Ночной ПЯ

    Были вчера на Протасовом Яре, праздновали день рождения одного друга в связи с чем попали на ночное катание. Пришлось в одинадцать вечера мотнуться на работу за снарягой. На удивление штука оказалась довольно приятной, покупаешь skipass за 50 грн на неограниченное количество подъёмов и гоняешь туда-сюда. Если учесть, что за пропускным пунктом ещё и смотрят сквозь…