Здравствуйте, AndrewJD, Вы писали:
AJD>Здравствуйте, Splin, Вы писали:
S>>А в серъезных проетах этот метод не поможет. А BoundsChecker и его потомок DevPartner — это то, чем нужно пользоваться.
AJD>Только вот он тормозит жутко на серьезных проектах.
На серъезных проектах должны быть серъезные компы . У меня на 2 Гб памяти и Core 2 Duo работать можно. Без инструментирования проверка на ошибки практически не влечет доп. тормозов.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Разработка через отладку
От:
Аноним
Дата:
02.02.07 12:52
Оценка:
Здравствуйте, TarasCo, Вы писали:
TC>2. Поскольку идеальных кодеров нет, то придуманы тесты. Грамотно разработанные тесты позволяют находить ошибки без трассировки — и это гуд, поскольку трассировка отнимает слишком много времени. И в любом случае трассировка — это тупая работа.
Что вы подразумеваете под трассировкой? Я считаю, что это снятие лога работы программы, и без этого часто не обойтись, если программа далеко от вас у юзера....
Re[6]: Продвинутая отладка приложений, повышение эффективнос
Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, Splin, Вы писали:
S>>Мда.. Как говориться, кому лень читать манулы, тот просто "тыкает" пока не получиться . Есть другое название этому методу — "метод тыка" .
K>Нет, метод "тыка" это метод Монте-Карло, а я говорю о бинарном поиске
>> Только это прокатывает в небольших проетах (аля нотэпада). А в серъезных проетах этот метод не поможет. А BoundsChecker и его потомок DevPartner — это то, чем нужно пользоваться. Один раз понять как и больше не будет желания комментировать.
K>Я умею пользоваться и BoundsChecker и DevPartner. И ещё я согласен с такой фразой "Никогда не говори никогда" В общем по ситуации надо смотреть.
Никогда так не говорю . На войне любые методы подходят (сам иногда комментирую код когда никто не видит). Можно дать человеку танк, даже если он стрелять не умеет — давить всех будет .
Здравствуйте, Аноним, Вы писали:
А>Что вы подразумеваете под трассировкой? Я считаю, что это снятие лога работы программы, и без этого часто не обойтись, если программа далеко от вас у юзера....
Трассировка — это пошаговое выполнение программы.
Да пребудет с тобою сила
Re: Продвинутая отладка приложений, повышение эффективности
Нет, и еще раз нет! Судя по префиксу, это int, и не надо его использовать как булеан. Первый вариант прочитают все, второй — те кто точно помнит интовые значения true/false.
Здравствуйте, minorlogic, Вы писали:
M>Ценность сомнительна , читать Code Complete макконела.
Для начала Джона Робинсона, отладка приложения для Microsoft Windows, ценнейшая книга.
А статья конечно никакая.
Народная мудрось
всем все никому ничего(с).
Re[2]: Продвинутая отладка приложений, повышение эффективнос
Здравствуйте, Чили, Вы писали:
Ч>Здравствуйте, Kudinov Alexander, Вы писали:
Ч>Век живи — век учись! (народная мудрость) Ч>Мелочь, вроде бы, if (0 = value) { } а сколько времени экономит!!!
Немного, если warning'и читать...
Re[3]: Продвинутая отладка приложений, повышение эффективнос
Здравствуйте, Alex Kirhenshtein, Вы писали:
AK>Здравствуйте, MasterZiv, Вы писали:
AK>
MZ>>if(iValue == 0)
MZ>>{
MZ>>}
AK>
MZ>>На языке С.С++ пишется вот так:
AK>
MZ>>if( !iValue )
MZ>>{
MZ>>}
AK>
AK>Нет, и еще раз нет! Судя по префиксу, это int, и не надо его использовать как булеан. Первый вариант прочитают все, второй — те кто точно помнит интовые значения true/false.
Кроме того второй вариант медленее, насколько я помню в msdn рекомендуют (expr)!=0, если тип expr не bool. Типа оптимизатор не будет оптимизировать, хотя я и не понял почему
Re: Продвинутая отладка приложений, повышение эффективности
Здравствуйте, Kudinov Alexander, Вы писали:
KA>Продвинутая отладка приложений
KA>Я немного систематизировал свой опыт разработки приложений, а точнее отладки. За годы работы я заметил, что правильная и эффективная отладка может существенно повысить качество приложений. Статьи, в которых я изложил свой опыт можно найти по адресу http://www.devdoc.ru/index.php/content/view/debugging_p1.htm
KA>Помимо отладки я освятил некоторые приемы по работе с отладчиком среды MS VS .Net 2003. Думаю, это будет полезно не только начинающим, но и гуру. Всегда можно найти что-то новое в привычных вещах.
KA>Пишите мне Ваши отзывы, вопросы и предложения. Наиболее интересные вещи я включу в статьи.
Хочу, заметить одно обстоятельство с АПИ функциями IsBadReadPtr/IsBadWritePtr,
нет я не их противник, но и не их ярый сторонник
Просто, был один случай, когда на совершенно валидной памяти они выбрасывали ексепшн, насколько щас помни это был dirextx'ый surface, — пришлось assertvalid'ы на его указатели закомментировать..
Помойму, на codeproject'е по этому поводу есть хорошая статья, можно поискать.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[2]: Продвинутая отладка приложений, повышение эффективнос
Здравствуйте, Vain, Вы писали:
KA>>Пишите мне Ваши отзывы, вопросы и предложения. Наиболее интересные вещи я включу в статьи. V>Хочу, заметить одно обстоятельство с АПИ функциями IsBadReadPtr/IsBadWritePtr, V>нет я не их противник, но и не их ярый сторонник V>Просто, был один случай, когда на совершенно валидной памяти они выбрасывали ексепшн, насколько щас помни это был dirextx'ый surface, — пришлось assertvalid'ы на его указатели закомментировать..
Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, Vain, Вы писали:
KA>>>Пишите мне Ваши отзывы, вопросы и предложения. Наиболее интересные вещи я включу в статьи. V>>Хочу, заметить одно обстоятельство с АПИ функциями IsBadReadPtr/IsBadWritePtr, V>>нет я не их противник, но и не их ярый сторонник V>>Просто, был один случай, когда на совершенно валидной памяти они выбрасывали ексепшн, насколько щас помни это был dirextx'ый surface, — пришлось assertvalid'ы на его указатели закомментировать..
K>интересная статья про IsBadPtr http://blogs.msdn.com/oldnewthing/archive/2006/09/27/773741.aspx
Помойму, та же статья где то также начинается
But this is a bad idea. IsBadWritePtr should really be called CrashProgramRandomly
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[2]: Продвинутая отладка приложений, повышение эффективнос
Здравствуйте, Vain, Вы писали: V>Хочу, заметить одно обстоятельство с АПИ функциями IsBadReadPtr/IsBadWritePtr, V>нет я не их противник, но и не их ярый сторонник V>Просто, был один случай, когда на совершенно валидной памяти они выбрасывали ексепшн, насколько щас помни это был dirextx'ый surface, — пришлось assertvalid'ы на его указатели закомментировать..
Это можно было бы и простить, если бы не одна вещь. Эти функции -- показывают погоду на марсе, а не валидность поинтера. То, что он читабелен еще не значит того, что он не смещен куда-то в сторону или на том месте уже давно не создан новый объект.
Re[4]: Продвинутая отладка приложений, повышение эффективнос
От:
Аноним
Дата:
02.02.07 16:45
Оценка:
Здравствуйте, saproj, Вы писали:
S>80% кандидатов не знают этой примиты? Эк вас угораздило. Где же такое нашествие чайников?
Вам, видимо, везет. Увы, "чайников" на собеседованиях большинство. Некоторые по студенческой привычке пытаются списывать, давить кол-вом слов, выведывать вопросы и т.п., но любой шаг вглубь темы — и все, человек безбожно "плывет". Невозможно за ночь выучить то, что нарабатывается ежедневным опытом.
Re[3]: Продвинутая отладка приложений, повышение эффективнос
Здравствуйте, Eugene Kilachkoff, Вы писали:
EK>Здравствуйте, Vain, Вы писали: V>>Хочу, заметить одно обстоятельство с АПИ функциями IsBadReadPtr/IsBadWritePtr, V>>нет я не их противник, но и не их ярый сторонник V>>Просто, был один случай, когда на совершенно валидной памяти они выбрасывали ексепшн, насколько щас помни это был dirextx'ый surface, — пришлось assertvalid'ы на его указатели закомментировать.. EK>Это можно было бы и простить, если бы не одна вещь. Эти функции -- показывают погоду на марсе, а не валидность поинтера. То, что он читабелен еще не значит того, что он не смещен куда-то в сторону или на том месте уже давно не создан новый объект.
В microsoft'е похоже его юзают
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Hi TarasCo
А>>Что вы подразумеваете под трассировкой? Я считаю, что это снятие лога работы программы, и без этого часто не обойтись, если программа далеко от вас у юзера....
T>Трассировка — это пошаговое выполнение программы.
Не всегда реально. Например мы пишем Application Server. Некоторые места принципиально нельзя пройти по шагам и добиться нужного результата (например проверить правильность синхронизации между потоками/подсистемами). Так же есть проблемы, чтобы пройтись по шагам на всем зверинце платформ (ну нету у нас HP-UX, а есть только у заказчика). Я уже даже забыл когда последний раз по шагам ходил, максимум лог просмотреть. А иногда и даже лог не доступен, остается только глазками. Сейчас даже не знаю зачем нужен проход по шагам.
--
С Уважением
Posted via RSDN NNTP Server 2.0
Re[6]: Продвинутая отладка приложений, повышение эффективнос
Мда, по моему мнению статья слабовата и отдает бредом.
if(!iValue) — и больше никаких проблем
я так даже строки проверяю.
Верить или нет…
double *p, int size — не установишь размер программа просто сдохнет. все.
ASSERT(size > 0); — не люблю проверять. не привык. писал большие программы, издевался над указателями, проверки только if. Эта сволочь приставала к моим окнам, просто ненавижу.
Хотя сейчас создаю массив, там буду использовать для контроля. там важна скорость и в релизе эти проверки не к чему.
Программы пишу:
1)мысль, что писать.
2)пишу
3)проверяю написанную часть
4)возвращаюсь к пункту 2.
получается как бы разработка новой версии. В основном просто понятно где происходит ошибка. иногда бывает сложнее(писал язык программирования), но и там потребовалось наставить контрольных точек и анализировать.(под конец она попалась.)
Римское правило. Тот, кто говорит, что Это не может быть сделано, никогда не должен мешать тому, кто Это делает.
Осень, ну вы поняли.
Зачем еще один код? А человек?
Re[3]: Продвинутая отладка приложений, повышение эффективнос
Здравствуйте, s_viy, Вы писали:
_>Здравствуйте, Чили, Вы писали:
Ч>>Здравствуйте, Kudinov Alexander, Вы писали:
Ч>>Век живи — век учись! (народная мудрость) Ч>>Мелочь, вроде бы, if (0 = value) { } а сколько времени экономит!!!
_>Немного, если warning'и читать...
Зато отлично похабит код! Нужно написать другую статью: Code Uglification Techniques. Туда войдут: Hungarian, if(0==value), (void)printf — для тех, кто любит указывать о явном опускании кода возврата, и другие дебильные приемчики, которые обожают некоторые программисты-недоучки
Re[5]: Продвинутая отладка приложений, повышение эффективнос
Здравствуйте, Splin, Вы писали:
S>Мда.. Как говориться, кому лень читать манулы, тот просто "тыкает" пока не получиться . Есть другое название этому методу — "метод тыка" .
Это не "метод тыка", а "метод научного тыка". Сечешь разницу?