debugger watches you

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

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

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

Similar Posts

  • Rhythm of War

    Анонс, штоли 🙂 Надеюсь, что скоро релизнемся. http://rhythmofwar.com Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • Об отчете

    Отчет о карпатах сегодня не написал – устал за поездку 🙂 Днем пытался отоспаться, а также ходил по магазинам, помогал тете с закупками, у нее сегодня бездник. Поэтому вечером еще и пьянствовал немного, завтра, думаю, уже налабаю отчет, главное выспаться 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share…

  • Так вообще

    Что-то давно я свой ЖЖ не обновлял, правда есть небольшая отмазка – сессия, не было времени и все такое 🙂 Но как показала практика – отмаз, что нет времени – это полный отстой, поскольку, на самом деле, при желании, время можно найти для чего угодно и уж тем более для заполнения ЖЖ, надо просто захотеть….

  • Интернет

    Интернет штука полезная и, похоже, незаменимая. Вот пропал у меня инет на 2 дня – это писец просто был – можно сказать катастрофа. Ни тебе доку скачать, ни новости посмотреть, ни музычку послушать – кошмар полный. Зато спать получается лечь раньше 🙂 Вообще, начинаю подумывать о написании проги, которая в 12 ночи будет вырубать комп…

  • Похоже сессия

    Похоже, что пришла ОНА! Сегодня, когда я узнал, что я не допущен к половине зачетов, то осознал, куда я попал и расслабился я рано, поэтому пришлось напрячься и целых 2 часа с Серегой учить вторую половину зачетов, которую после этого мы сдали слегка 🙂 Это были “Основы банковской деятельности”, за два часа я постиг великие…