|
|
  |
Привязанность к отладчикам |
|
|
|
May 29 2009, 13:33
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Dog Pawlowa @ May 29 2009, 15:14)  Возвращаясь в отладчику и рекомендации поменьше его использовать. Если абстрагироваться от программирования, это можно сравнить с библейской заповедью "Не укради": вроде знаешь, а рука так и тянется  Нет, это сильно жестко.  Не надо навязывать диету когда с весом все ОК. Насильно не использовать отладчик там, где он эффективен - это все равно, что в ресторане и из множества блюд выбрать баланду. Цитата(DpInRock @ May 29 2009, 16:05)  Вывод. Вдумчивое (неторопливое) написание программы существенно эффективнее поэтапному написанию с использованием железки. Увеличивается Time-to-market. Тем более если задача бьется, а как правило большая задача разбивается на этапы очень хорошо, разумнее делать поэтапно. Только не забывать о тестировании на регрессию.
|
|
|
|
|
May 30 2009, 12:24
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Еще об отладчиках  Очень часто встречается вариант, когда отладчик-то есть, только вот отлаживать нечего  - надо сначала подумать и НАПИСАТЬ хоть что-то. В случае голого софта с этим проще - пишется любая галиматья и в отладчике пороверяется действительно-ли 2+2=4? А вот, например, тут http://electronix.ru/forum/index.php?showtopic=63469&hl= фигово - он-бы и типа "отладил", но попасть туда сначала надо, а для этого надо просто уметь прочитать документацию и правильно написать десяток строк. Взять и написать и все оладчики мира тут не помогут. Лет мамнадцать назад один в один задача была решена через полдня после ПЕРВОГО моего прикосновения к LPC2114 и ARM вообще. Без всяких отладчиков. Случилось это на плате от Olimex, которую до этого несколько месяцев терзали вполне, типа крутые пользователи AVR+JTAG Ice со словами - "да тут JTAG нужен, куды-ж без него, кто для AVR он у нас есть....".
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 30 2009, 14:05
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(zltigo @ May 30 2009, 15:24)  А вот, например, тут Пример наглядный. Без чтения документации будет - "Мартышка и очки". Цитата после ПЕРВОГО моего прикосновения к LPC2114 и ARM вообще. Без всяких отладчиков. Случилось это на плате от Olimex, Аналогично, только и железо я делал сам (LPC2105, проц питал опером LM358). Тем не менее я считаю, что с отладчиком и с готовой отладочной платой было бы удобнее и быстрее.
|
|
|
|
|
May 31 2009, 00:06
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Первый мой опыт программирования 580ик80 - 80-й год прошлого столетия. Не было не только отладчика, но вообще ничего, кроме блокнота, ручки, кодов команд и возможности записать PФ1 у друзей. Я не ратую за возврат в прошлое, но, как говорил мой приятель "поиграть в компьютер", т.е. самому повыполнять ту программу, которую пишешь, очень полезно и сегодня. Независимо от языка программирования.
|
|
|
|
|
May 31 2009, 06:26
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(aaarrr @ May 30 2009, 23:54)  А с отладчиком и готовой платой так и остался бы дураком  Да уж, если бы не пришлось столкнуться с GCC, до сих пор бы не подозревал, что процесс "компиляции" состоит из препроцессорной обработки, собственно компиляции модулей и последующей линковки. И что каждый шаг выполняется отдельной программой, которой можно задать параметры в командной строке (а не только галочками в ИАРе) Отладчик бывает нужен очень редко, в исключительных случаях, когда с программой происходит что-то совсем непонятное. (Глюки компилятора  ) Но поскольку у меня отладчик пылится в ящике, а на плате житаг даже не разведён, то обычно в таких случаях я беру и перетряхиваю программу до тех пор, пока она не начинает работать в соответствии с моим пониманием. Иногда проще переписать заново пару-тройку функций, чем вылавливать каких-то блох
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 31 2009, 08:49
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(MrYuran @ May 31 2009, 09:26)  И что каждый шаг выполняется отдельной программой, которой можно задать параметры в командной строке (а не только галочками в ИАРе) Действтельно? А документацию на компилятор, линкер, библиотекаль, ассемблер, утилиты... совсем не читали. Всего-то "F1" нажать и сразу даже просто по меню! хелпа видно из чего пакет состоит, ибо по каждому компоненту свой PDF приложен. А уж в каждом из докуменов все подробненько. Цитата(Rst7 @ May 31 2009, 09:41)  Препроцессор, правда, в комплекте с компилятором. Но можно и стороннй использовать  .
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 31 2009, 14:24
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Rst7 @ May 31 2009, 12:19)  А смысл? Никакого, поскольку ключик прогона препроцессора у компилятора, естественно, имеется, но если хочется, то можно.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 1 2009, 08:28
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(zltigo @ May 30 2009, 15:24)  Лет мамнадцать назад один в один задача была решена через полдня после ПЕРВОГО моего прикосновения к LPC2114 и ARM вообще. Без всяких отладчиков. Случилось это на плате от Olimex, которую до этого несколько месяцев терзали вполне, типа крутые пользователи AVR+JTAG Ice со словами - "да тут JTAG нужен, куды-ж без него, кто для AVR он у нас есть....". А причём здесь отладчик? Честно говоря, не совсем понимаю о чём тема. Зависимость - сложное понятие. Приведу пример. Вот только что закончил проект (надо было) на STEP7 сименса. Всё по вашему желанию и сценарию. Первоначальных знаний - 0. Проект писался пока железо делалось на заводах сименса. Документации гора. Плюс форум - убитый, с полным отсутствием и желанием помочь. Уровень языка - послабее чем упоминавшийся асемблер 8080. При начале отладки - выяснилась что она практически нулевая. Вопрос к спецу - он мне ответ - а я просто ошибок не делаю. (Правда он 19 лет пишет. Смею предположить, что когда-то он ошибки делал). Сейчас всё работает естественно. Но, если честно, сейчас, я бы всё переписал заново. И времени не пожалел. Не дадут. Оборудование простаивать не может. Это я к чему? А к тому, что знание аппаратной части и усиленное найподробнейшее чтение документации не определяет качество написания программы. Отладчик не сможет существенно улучшить либо ухудшить эту программу. По крайней мере в моём понимании. Поскольку реальная программа, как правило, не базируется на одном алгоритме, то и правильная алгоритмизация - тоже не всё. Не знаю как написать, но требуется выбрать, подход. Алгоритм увязки алгоритмов.  И это делается только на основе опыта. Методом проб и ошибок. Пишешь, пишешь, пишешь, ... появилось красивое решение - отложилось в голове. Через какое то время - что-то типа кубиков появляется. Только не на бумаге а в голове. И твоя прога возникает более менее цельным куском уже на этапе постановки задачи. А если этого нет, то "заплатки" обязательно появятся. Вне зависимости сколько времени ты пишешь проект и какими средствами ты пользовался.
|
|
|
|
|
Jun 1 2009, 10:23
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Был у меня в практике случай весьма мрачной отладки. Софтина на PIC16, писанная врукопашную (причем не мной) имела баг - происходила ошибка обмена раз в N часов. Если бы она просто происходила и все, вопросов бы не было (ну переповторило бы пакет и окей). Однако, случались такие фазы Луны, что на переповторе ошибка опять повторялась ну и т.д. вплоть до досчета до победного конца счетчика ошибок (собственно, из-за чего внимание и обратили). Попытки вставки различных отладочных фичей не привели к результату - ошибка пропадала. Стало понятно, что проблема кроется где-то в синхронизации потоков (или какой-то подобной фигне). Неделю копались в коде, ничего не нашли. Потом решили, что раз скорость обмена всего 300 бод, запишем через звуковую карту весь обмен на шине до ошибки и посмотрим, что же именно происходит. После того, как записали трехчасовой wav и увидели дупу, ошибку нашли за 5 минут. Судя по коду и каментам, внесена была эта ошибка в результате вбивания костыля по результатам даже не работы с отладчиком, а трассировки в симуляторе (что в общем-то почти один хрен). Вот так. В общей сложности пляски заняли пару недель.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|