Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что такое отладка? / 25 сообщений из 37, страница 1 из 2
08.05.2005, 22:38
    #33054838
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
Я отладкой никогда ни занимался. Проги маленкие и простые писал.
Расскажите, какие цели преследует этот процесс, какими методами и средствами проводится. Что такое отладочная информация (добавляемая к исполняемуму файлу например gcc'цой)?
...
Рейтинг: 0 / 0
08.05.2005, 22:54
    #33054842
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
Извини, но смеялся я долго

Либо проги были очень маленькие, либо ты программист, который почти не делает ошибок )))
Ты точно не прикалываешься?

Процесс отладки приследует цель выявления ошибок на основе анализа промежуточных состояний вычислительного процесса и сравнения их с эталонными для данного алгоритма (это по-умному)
А по-простому: останавливаем код и смотрим значения переменных, порядок вызова функций, их результаты. Можем проводить выполнение программы по шагам, назначать следующий выполняемый блок кода, ставить breakpoint, то есть точки, где мы хотим остановить выполнение программы и проанализировать ее состояние.
Все данные действия выполняются с помощью отладчика. Отладчик, пользуясь механизмами операционной системы и процессора берет отлаживаемую прогрмму под полный контроль.
Так как программа скомпилирована в машинный код, то отладку в таком виде делать неудобно, поэтому в отладочные версии прог добавляется отладочная информация, которая для соответствующих блоков кода указывает их эквиваленты языка высоко уровня, а также содержит информацию о переменных проги, номерах строк итд. В окончательных версиях эту информацию удаляют (поэтому чужую прогу можно отлаживать только в asm коде).
Среди других методов можно упомянуть: отладочный лог (прога пишет инфу о своих состояниях в файл), макрос ASSERT (пассивная отладка).

________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
08.05.2005, 23:15
    #33054853
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
Если то что мне выдавала прога не соответствовала моим ожиданиям, то я долго смотрел на исходный код и на алгоритм, пока не находил ошибку. Но было это довольно редко.

А как проходит процесс оптимизации? Как отслеживается утечка памяти? Какие инструменты помогают выявить её причину?
...
Рейтинг: 0 / 0
08.05.2005, 23:17
    #33054855
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
Ну а насколько маленькие? Ну небольшие. Тыщь на пять строк на паскале были. Не больше.
...
Рейтинг: 0 / 0
09.05.2005, 11:50
    #33054991
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
SarinНу а насколько маленькие? Ну небольшие. Тыщь на пять строк на паскале были. Не больше.

Удивительно, я прохожу отладчиком по каждым 100-200 строкам, а у вас 5000 без отладчика работают
...
Рейтинг: 0 / 0
09.05.2005, 20:33
    #33055279
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
автордолго смотрел на исходный код и на алгоритм
А если бы не смотрели, а отлаживали, то все было бы быстро. :)
Можно, конечно, и ShowMessage'ами состояние перемнных показывать, но. Отладчиком быстрее.
...
Рейтинг: 0 / 0
09.05.2005, 21:44
    #33055314
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
Я Шоу мессагами пользовался. Иногда логи писал. Но это изредка.
Когда проблемы просмотром алгоритма не находились.

Вообще я последоватеьно разрабатывал. Соответственно когда возникала ошибка я сразу знал где.

Что с памятью скажете? Как искать и исправлять такие лаги?
...
Рейтинг: 0 / 0
10.05.2005, 19:27
    #33056151
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
Вообще- то существует мнение, что упор надо делать именно на разбиение задачи на подзадачи, до тех пор пока объем подзадачи не станет так мал, что можно легко проследить по тексту соответствующей подпрограммы, верно ли она написана. Если проверять только отладкой, то надо проверять программу на бесконечном множестве исходных данных, так как неясно, одинаково ли она работает с каждым множеством исх. данных.

Я начинал с Фортрана на большой машине, где последовательность действий была такая:
- написать свою супер-пупер программу (процедуру) на специальном бланке,
- отнести и оставить ее на перфорацию
- через два дня взять перфокарты
- просмотреть их на предмет синтактических ошибок, оставить на перебивку найденных ошибок
- через два дня взять, оставить на запуск
- через два дня взять, посмотреть результаты. В случае ошибок, внимательно смотреть текст программы :)
Понятно, что при таком подходе либо вообще отказываешься от программирования, либо учишься сначала продумывать алгоритм, потом писать без ошибки, небольшими процедурами для которых (см. выше).

Перейдя на персоналки и Паскаль, я установил что этот подход позволяет писать программы, которые работают, ну почти с первого раза. Конечно, клавиши F4, F7,F8 в дельфях очень хорошая штука, но (для меня) - только как приятный довесок.
...
Рейтинг: 0 / 0
10.05.2005, 21:58
    #33056292
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
2 S.G.: Это поможет не всегда -- иногда просто не ясно, что получается после вызова функции чужой библиотеки, и тогда можно в свой код смотреть хоть до конца жизни.
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
11.05.2005, 01:14
    #33056378
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
Lelikk, во времена перфокарт "чужих библиотек" не было :)
И вообще, если не ясно что возвращает чужая процедурка достаточно сделать выброс промежуточных результатов. Sarin верной дорогой идет. Хотя и медленно :)
...
Рейтинг: 0 / 0
11.05.2005, 07:57
    #33056491
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
2 Lelikk
Ну я же не против отладки. Просто встречал людей, которым отладка заменяла обдумывание. Собственно, в наше время этот "стиль" встречается довольно часто. Не зря тут крутился анекдот недавно: "А что делает Ваша программа?"- "Не знаю, сейчас скомпилирую, посмотрю"
...
Рейтинг: 0 / 0
11.05.2005, 11:26
    #33056928
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
Понятно, тема отладки оказалась популярна:)

Ещё раз спрашиваю: есть ли технические средства отловить утечку памяти (мозгов) так сказать в зародыше? Не заставляя прогу пахать неделями.
...
Рейтинг: 0 / 0
11.05.2005, 11:43
    #33056981
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
SarinЕщё раз спрашиваю: есть ли технические средства отловить утечку памяти (мозгов) так сказать в зародыше? Не заставляя прогу пахать неделями.
Безусловно. Причем пахать неделями незачем - вопрос не в том, чтобы отловить ситуацию "у машины кончилась память", вопрос в том, чтобы отловить, где именно происходит утечка. Инструмента хватает, для разных сред свои.

Вообще- то существует мнение, что упор надо делать именно на разбиение задачи на подзадачи, до тех пор пока объем подзадачи не станет так мал, что можно легко проследить по тексту соответствующей подпрограммы, верно ли она написана.
Существует факт, что подход сам по себе правильный, но далеко не всегда работающий. Мало того, в нисходящем проектировании и структурном программировании - идеологиях, в рамках которых и был сформулирован этот принцип - констатировалось, что наиболее сложной частью является не реализация подпрограмм, а корректность интерфейса между подпрограммами.
...
Рейтинг: 0 / 0
11.05.2005, 12:17
    #33057084
CruelGenius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
Не давно правил программу на Clipper 5.01.
2 Sarin ты наверное даже не знаешь что это такое? Так я скажу это КОШМАР потому что нет никаких отладчиков. По сравнение с теми которые под VC++ 6 или Borland C++ 3.1 или уж если брать компилятор времен Clipper такой как встроенный в Turbo C 2.0. Где не надо всавлять месаги с выводом сообщений или что выполняется какой то кусок программы. Что мне и приходилось делать. А потом оказалось что ошибка не в программе, а надо было индексы перестроить. Под отладчиком я бы увидел это СРАЗУ.
...
Рейтинг: 0 / 0
11.05.2005, 12:27
    #33057120
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
CruelGeniusНе давно правил программу на Clipper 5.01.
2 Sarin ты наверное даже не знаешь что это такое? Так я скажу это КОШМАР потому что нет никаких отладчиков.
Вы меня удивили. 5.01 - это, если мне не изменяет память, CA Clipper, в котором был абсолютно нормальный отладчик.
...
Рейтинг: 0 / 0
11.05.2005, 12:58
    #33057227
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
softwarer
Безусловно. Причем пахать неделями незачем - вопрос не в том, чтобы отловить ситуацию "у машины кончилась память", вопрос в том, чтобы отловить, где именно происходит утечка. Инструмента хватает, для разных сред свои.


Это средства компилятора, или сторонние программы?

Плохо, что без таких мест где может память кончится не обойтись:(
Готов забится, что еслиб скрипты на ПХП не работали на протяжении секунд, то мозги греблибы лопатой. Динамические массивы и всё такое - наркотик.
...
Рейтинг: 0 / 0
11.05.2005, 13:12
    #33057289
OldPferd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
это КОШМАР
Да ничего, отлаживали, и с отладчикои, и без, на ЕС-ках хуже было.
У меня самая большая программа на Clipper была на мегабайт исходного текста
А переиндексация была первой рекомендацией пользователю, если он звонил и сообщал о каких-то проблемах

Я начинал с Фортрана на большой машине, где последовательность действий была такая:
мы с тобой одной крови :)
...
Рейтинг: 0 / 0
11.05.2005, 13:17
    #33057308
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
SarinЭто средства компилятора, или сторонние программы?
Хм. Зависит от. Лично моя точка зрения - все, что может быть отделено от компилятора, должно быть отделено от компилятора. Все, что может быть отделено от RTL, должно быть отделено от RTL. Итп.

Замкнутые системы - это наказание для программиста. В них постоянно приходится констатировать "это так, потому что это так. Может ошибка, может нет, все равно ничего не сделаешь, если не лезть править бинарники".

Sarin
Готов забится, что еслиб скрипты на ПХП не работали на протяжении секунд, то мозги греблибы лопатой. Динамические массивы и всё такое - наркотик.
Не понял логики. Не знаю PHP и его особенностей, но совершенно не понимаю, чем "динамические массивы" заведомо принципиально хуже чего-то другого.
...
Рейтинг: 0 / 0
11.05.2005, 14:20
    #33057503
CruelGenius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
softwarer CruelGeniusНе давно правил программу на Clipper 5.01.
2 Sarin ты наверное даже не знаешь что это такое? Так я скажу это КОШМАР потому что нет никаких отладчиков.
Вы меня удивили. 5.01 - это, если мне не изменяет память, CA Clipper, в котором был абсолютно нормальный отладчик.

На машине с текстами клиппера и самими бинарниками отладчика не было, не буду же я бегать по городу и искать отладчик. Через интернет не было возомжности. Он дайл ап параллельно с факсом. Факс был занят. Полдня убли на это дело.
...
Рейтинг: 0 / 0
11.05.2005, 16:12
    #33057925
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
White OwlLelikk, во времена перфокарт "чужих библиотек" не было :)
И вообще, если не ясно что возвращает чужая процедурка достаточно сделать выброс промежуточных результатов. Sarin верной дорогой идет. Хотя и медленно :)

Мы говорим про сегодня! Ну далеко не во всех приложениях можно ставить MessageBox. И не во всех ситуациях. Тогда уж логичнее писать в лог-файл.

З.Ы. Брейкпойты все равно к цели ведут быстрее.
...
Рейтинг: 0 / 0
11.05.2005, 16:22
    #33057963
MLeon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
To S.G. : Вы будете смеяться, но я начинал точно так же.
To Sarin: Счастливчик!
...
Рейтинг: 0 / 0
11.05.2005, 16:30
    #33057995
MLeon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
По поводу утечки памяти:
Рекомендую два способа, которые хорошо помогают
1. Указатели из STL, которые обнуляются при освобождении
2. Свой указатель "оборачивать" классом, освобождая память в деструкторе.
2а. Придавать классу собственные new/delete
...
Рейтинг: 0 / 0
11.05.2005, 18:14
    #33058282
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
Sarin такие средства есть программные - например
NuMega BoundsChecker
и другие
...
Рейтинг: 0 / 0
11.05.2005, 18:52
    #33058353
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
CruelGeniusНа машине с текстами клиппера и самими бинарниками отладчика не было, не буду же я бегать по городу и искать отладчик.
Это вы смотреть не умеете.
Отладчиков в Клиппере аж две штуки. Один, cld.exe, лежит в том же каталоге что и компилятор. Второй, debug.lib, может быть подлинкован непосредственно внутрь исполняемого файла и даже отдан клиенту :)
...
Рейтинг: 0 / 0
11.05.2005, 19:20
    #33058408
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что такое отладка?
OldPferd
Я начинал с Фортрана на большой машине, где последовательность действий была такая:
мы с тобой одной крови :)

MLeonTo S.G. : Вы будете смеяться, но я начинал точно так же.


Есть еще порох в пороховницах! ;)
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что такое отладка? / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]