powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что такое отладка?
37 сообщений из 37, показаны все 2 страниц
Что такое отладка?
    #33054838
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я отладкой никогда ни занимался. Проги маленкие и простые писал.
Расскажите, какие цели преследует этот процесс, какими методами и средствами проводится. Что такое отладочная информация (добавляемая к исполняемуму файлу например gcc'цой)?
...
Рейтинг: 0 / 0
Что такое отладка?
    #33054842
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извини, но смеялся я долго

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


Есть еще порох в пороховницах! ;)
...
Рейтинг: 0 / 0
Что такое отладка?
    #33058451
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MLeon
Рекомендую два способа, которые хорошо помогают
1. Указатели из STL, которые обнуляются при освобождении
2. Свой указатель "оборачивать" классом, освобождая память в деструкторе.
Заодно хотелось бы понять отличие первого способа от второго :)

А насчет "хорошо помогают" - это сложный вопрос. Я бы сказал, заменяют одну сложность другой сложностью. Эта другая сложность удобнее для освоившихся с ней людей, пишуших серьезные проекты; для стартового уровня я бы не советовал в нее лезть.
...
Рейтинг: 0 / 0
Что такое отладка?
    #33068958
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl CruelGeniusНа машине с текстами клиппера и самими бинарниками отладчика не было, не буду же я бегать по городу и искать отладчик.
Это вы смотреть не умеете.
Отладчиков в Клиппере аж две штуки. Один, cld.exe, лежит в том же каталоге что и компилятор. Второй, debug.lib, может быть подлинкован непосредственно внутрь исполняемого файла и даже отдан клиенту :)

В принципе это не важно я уже поменял работу, и надеюсь что с клиппером больше не буду сталкиваться. debug.lib позволяет сомтреть какие базы открыты откуда вызов пошел и тд. В данном случае он не мог мне помочь. При внутренней ошибке 19.

Посмотрел у меня в каталоге не было cld.exe. Может он у вас лежит где то.
...
Рейтинг: 0 / 0
Что такое отладка?
    #33212533
Рыт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Что такое отладка?

Например, в своем Обероне Вирт нафик не добавил никакой возможности для дибаггинга; с таким объяснением: нефик всяким ламерам заниматься п=о=д=г=о=н=к=о=й своих "шедевров" под требуемый результат.
...
Рейтинг: 0 / 0
Что такое отладка?
    #33213432
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вирт поступил - как теоретик. Готов спорить, что
ему не приходилось коротать ночь над сбойным
исходником, который надо было сдать в эксплуатацию
на "вчерашнее число".

Прятно .. конечно в "кулуарах" за чашечкой кофею
рассуждать о чистоте кода и т.п., но давайте не
кривя душой скажем - всегда ли мы имеем
возможность отлаживать чистый код? И всегда-ли
этот код комментирован? И на местном-ли языке
он написан? Стандартные-ли он либы использует?

Когда у девелопера иссякает терпение искать
корреляцию между входным параметром и кодом
ошибки он, отчаявшись начинает использовать
арсенал дебаггера. Генерить ассерты, включать
опции логирования, и т.д вплоть до прямого
вмешательства в работу аппаратуры.
...
Рейтинг: 0 / 0
Что такое отладка?
    #33213471
Рыт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВирт поступил - как теоретик. Готов спорить, что
ему не приходилось коротать ночь над сбойным
исходником, который надо было сдать в эксплуатацию
на "вчерашнее число".


Один к одному мои мысли по этому поводу.
Но, насколько я помню, Вирт далеко не только теоретик.
А может он просто зловредный старикан (типа чингиза).
...
Рейтинг: 0 / 0
Что такое отладка?
    #33213533
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то Паскаль (младший братишка Оберона)
создавался как язык обучающий. Я ничего плохого
этим не хочу сказать. Просто есть большая разница
между академическим программированием и промыш-
ленными разработками.
...
Рейтинг: 0 / 0
Что такое отладка?
    #33213635
Рыт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том-то и дело, что он свои последние языки продвигает именно как предназначенные для промышленных разработок, - особенно в критических отраслях, - космической, авиа, атомной пром-ти, - как предельно безопасные и защищенные от программерских ошибок.
...
Рейтинг: 0 / 0
Что такое отладка?
    #33213811
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь, в пятницу я очень туго соображаю, поэтому никак не могу понять, нахрена язык должен содержать что-то для отладки .

Плюс, стоит отметить, что имеющиеся на настоящий момент эксперименты по языковой поддержке защищенного программирования по сути закончились пшиком - то есть синтаксис усложняем, читабельностью жертвуем, толку никакого. "Никакого" - в смысле, идиотские ошибки отлавливаем (тот самый академический успех), промышленного смысла - ноль.
...
Рейтинг: 0 / 0
Что такое отладка?
    #33213940
Рыт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не, ну я имел в виду конечно не голый язык (компонентный паскаль),
а его оболочку Оберон - компилятор, кодер/декодер, типа редактор.

>промышленного смысла - ноль
Стоял он у меня как-то, этот Оберон. Большего уродства трудно придумать. Вообще такое чувство будто Вирт считает, что тока он один умный, а все вокруг него дураки (или дети малые). После того как однажды этот Оберон, на простейшем коде в 10 строк, пожрал всю (абсолютно всю!) память на моей машине, а на попытки сделать BREAK тока что-то сообщал про какие-то ресурсы, я снес его нафик и больше о нем не вспоминал. Прикол здесь в том, что тот же самый код, но переписанный на VBA и запущенный из Экселя, отрабатывал самым чудесным образом и с очень небольшим пиком потребления памяти. Я специально, для чистоты эксперимента, 2 раза перезагружался и делал 2 прогона. Оберону это не помогло.
...
Рейтинг: 0 / 0
Что такое отладка?
    #33214146
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РытНе, ну я имел в виду конечно не голый язык (компонентный паскаль),
а его оболочку Оберон - компилятор, кодер/декодер, типа редактор.
Тут, с моей точки зрения, ситуация проста: если язык пойдет в эксплуатацию, напишут и хорошие инструменты, и хороший оптимизирующий компилятор, и библиотеки. Если займет свое академическое место - студенты тоже сварганят все необходимое, хотя качество - под вопросом. Вирту в данном случае вряд ли имеет смысл тратить время на прикладные детали.

Грубо говоря, Паскаль в виртовской версии вряд ли был чудом реализации. Да и C в КР-овской, назовем так, имел недостатки. Что не помешало тому и другому лет за десять обрасти мясом и занять свое место.
...
Рейтинг: 0 / 0
Что такое отладка?
    #33216332
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerГрубо говоря, Паскаль в виртовской версии вряд ли был чудом реализации.
Вот чудом он как раз и был :) Виртовский Паскаль не имел команд ввода/вывода. Их добавили уже после, когда делали реальный транслятор языка. А в первом опубликованом описании никаких write() не существовало :)
...
Рейтинг: 0 / 0
Что такое отладка?
    #33216428
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlА в первом опубликованом описании никаких write() не существовало
То есть потом его испортили? Жаль, я был о Вирте лучшего мнения :)
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что такое отладка?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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