|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Bormotov 2:5020/400 07 Oct 2002 18:12:33 To : Oleg Goodyckov Subject : Re: g++ --------------------------------------------------------------------------------
Hi, Oleg!
>>>>> "OG" == Oleg Goodyckov <og@videoproject.kiev.ua> writes:
>> OG> Обрабатываем массив 1000х100 элементов. Hа 876 строке в 56
>> OG> элементе программа слетает регулярно. Обрабатывается изображение.
>> OG> То есть, все элементы, по идее, не могут приподнести сюрпризов -
>> OG> они все примерно одинаковы. Слет, следовательно, обусловлен чем-то
>> OG> другим. Проще запустить программу в дебаггере, выйти на
>> OG> соотв. место в соотв. момент и просмотреть все и вся. Быстрее.
>>
>> можно подробнее, что именно попадает под "всё и вся"?
OG> Всей части, обрабатывающей данные в означенном месте. Там может быть
OG> достаточно сложная логика и много переменных. Писать все их в логи и
OG> потом анализировать, часто - дело куда более глупое и
OG> непродуктивное, чем раз заглянуть отладчиком и узнать, что какая-то
OG> переменная вовремя не отинициализирована.
"неотинициализированая переменна" ловится грамотным assert'oм.
OG> Живой пример. Словарь Slowo знаешь?
слышал, но никогда не пользовал.
OG> У меня он выпадал почему-то. Исходники есть. Что - начинать
OG> нашпиговывать их местами вывода диагностики или все же прогнать с
OG> отладчиком и выяснить методом ловли льва в пустыне сбойное место и
OG> потом узнать, в чем дело?
если он падает, отбрасывает корку. В том месте где падает - ставим для
начала assert'ы, например.
OG> Возможно, я просто не так крут, как ты и потому пошел вторым путем.
OG> За десять минут нашел неинициализируемую переменную, внес
OG> исправления в исходники и отправил их автору. И с ужасом
OG> представляю в данном случае, как бы я пошел путем протоколирования.
в принципе я согласен, что если отладчик помогает решить проблему за 10
минут (даже за тридцать) - то не нужно заморачиваться. Hо нужно четко
понимать, что 'давить на F8' нужно не до решения проблемы, а не более чем
какое-то время.
Разумеется со всеми тонкими моментами, на которые обратили внимания в
седеней ветке треда Alex и Netch, я согласен ;)
>> OG> Hо отладочный вывод, конечно же - вне конкуренции, обычно.
>>
>> еще раз, что отладчик покажет ТАКОГО, что нельзя записать в log?
OG> Можно все. Только анализировать километры лога не всегда удобно.
grep? ;)
OG> В особенности, когда не знаешь, чего искать.
если не знаешь, то коенчно лучше начинать с assert'ов. Я к чему все это
начал. Что УЗHАТЬ что искать, с помощью отладчика HЕ ПОРЩЕ. Иногда, в
простейших случаях, это удается узнать за 10-30 минут. Да, иногда
отладчик позволяет локализовать проблему. Hо часто люди считают что он
позволяет решать проблемы более эфективно. Вот с этим я и несогласен ;)
--
Bor.
--- ifmail v.2.15dev5
* Origin: BorHomeLand (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/25413fefa55e.html, оценка из 5, голосов 10
|