Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
Я отладкой никогда ни занимался. Проги маленкие и простые писал. Расскажите, какие цели преследует этот процесс, какими методами и средствами проводится. Что такое отладочная информация (добавляемая к исполняемуму файлу например gcc'цой)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2005, 22:38 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
Извини, но смеялся я долго Либо проги были очень маленькие, либо ты программист, который почти не делает ошибок ))) Ты точно не прикалываешься? Процесс отладки приследует цель выявления ошибок на основе анализа промежуточных состояний вычислительного процесса и сравнения их с эталонными для данного алгоритма (это по-умному) А по-простому: останавливаем код и смотрим значения переменных, порядок вызова функций, их результаты. Можем проводить выполнение программы по шагам, назначать следующий выполняемый блок кода, ставить breakpoint, то есть точки, где мы хотим остановить выполнение программы и проанализировать ее состояние. Все данные действия выполняются с помощью отладчика. Отладчик, пользуясь механизмами операционной системы и процессора берет отлаживаемую прогрмму под полный контроль. Так как программа скомпилирована в машинный код, то отладку в таком виде делать неудобно, поэтому в отладочные версии прог добавляется отладочная информация, которая для соответствующих блоков кода указывает их эквиваленты языка высоко уровня, а также содержит информацию о переменных проги, номерах строк итд. В окончательных версиях эту информацию удаляют (поэтому чужую прогу можно отлаживать только в asm коде). Среди других методов можно упомянуть: отладочный лог (прога пишет инфу о своих состояниях в файл), макрос ASSERT (пассивная отладка). ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2005, 22:54 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
Если то что мне выдавала прога не соответствовала моим ожиданиям, то я долго смотрел на исходный код и на алгоритм, пока не находил ошибку. Но было это довольно редко. А как проходит процесс оптимизации? Как отслеживается утечка памяти? Какие инструменты помогают выявить её причину? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2005, 23:15 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
Ну а насколько маленькие? Ну небольшие. Тыщь на пять строк на паскале были. Не больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2005, 23:17 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
SarinНу а насколько маленькие? Ну небольшие. Тыщь на пять строк на паскале были. Не больше. Удивительно, я прохожу отладчиком по каждым 100-200 строкам, а у вас 5000 без отладчика работают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2005, 11:50 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
автордолго смотрел на исходный код и на алгоритм А если бы не смотрели, а отлаживали, то все было бы быстро. :) Можно, конечно, и ShowMessage'ами состояние перемнных показывать, но. Отладчиком быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2005, 20:33 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
Я Шоу мессагами пользовался. Иногда логи писал. Но это изредка. Когда проблемы просмотром алгоритма не находились. Вообще я последоватеьно разрабатывал. Соответственно когда возникала ошибка я сразу знал где. Что с памятью скажете? Как искать и исправлять такие лаги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2005, 21:44 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
Вообще- то существует мнение, что упор надо делать именно на разбиение задачи на подзадачи, до тех пор пока объем подзадачи не станет так мал, что можно легко проследить по тексту соответствующей подпрограммы, верно ли она написана. Если проверять только отладкой, то надо проверять программу на бесконечном множестве исходных данных, так как неясно, одинаково ли она работает с каждым множеством исх. данных. Я начинал с Фортрана на большой машине, где последовательность действий была такая: - написать свою супер-пупер программу (процедуру) на специальном бланке, - отнести и оставить ее на перфорацию - через два дня взять перфокарты - просмотреть их на предмет синтактических ошибок, оставить на перебивку найденных ошибок - через два дня взять, оставить на запуск - через два дня взять, посмотреть результаты. В случае ошибок, внимательно смотреть текст программы :) Понятно, что при таком подходе либо вообще отказываешься от программирования, либо учишься сначала продумывать алгоритм, потом писать без ошибки, небольшими процедурами для которых (см. выше). Перейдя на персоналки и Паскаль, я установил что этот подход позволяет писать программы, которые работают, ну почти с первого раза. Конечно, клавиши F4, F7,F8 в дельфях очень хорошая штука, но (для меня) - только как приятный довесок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2005, 19:27 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
2 S.G.: Это поможет не всегда -- иногда просто не ясно, что получается после вызова функции чужой библиотеки, и тогда можно в свой код смотреть хоть до конца жизни. ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2005, 21:58 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
Lelikk, во времена перфокарт "чужих библиотек" не было :) И вообще, если не ясно что возвращает чужая процедурка достаточно сделать выброс промежуточных результатов. Sarin верной дорогой идет. Хотя и медленно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 01:14 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
2 Lelikk Ну я же не против отладки. Просто встречал людей, которым отладка заменяла обдумывание. Собственно, в наше время этот "стиль" встречается довольно часто. Не зря тут крутился анекдот недавно: "А что делает Ваша программа?"- "Не знаю, сейчас скомпилирую, посмотрю" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 07:57 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
Понятно, тема отладки оказалась популярна:) Ещё раз спрашиваю: есть ли технические средства отловить утечку памяти (мозгов) так сказать в зародыше? Не заставляя прогу пахать неделями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 11:26 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
SarinЕщё раз спрашиваю: есть ли технические средства отловить утечку памяти (мозгов) так сказать в зародыше? Не заставляя прогу пахать неделями. Безусловно. Причем пахать неделями незачем - вопрос не в том, чтобы отловить ситуацию "у машины кончилась память", вопрос в том, чтобы отловить, где именно происходит утечка. Инструмента хватает, для разных сред свои. Вообще- то существует мнение, что упор надо делать именно на разбиение задачи на подзадачи, до тех пор пока объем подзадачи не станет так мал, что можно легко проследить по тексту соответствующей подпрограммы, верно ли она написана. Существует факт, что подход сам по себе правильный, но далеко не всегда работающий. Мало того, в нисходящем проектировании и структурном программировании - идеологиях, в рамках которых и был сформулирован этот принцип - констатировалось, что наиболее сложной частью является не реализация подпрограмм, а корректность интерфейса между подпрограммами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 11:43 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
Не давно правил программу на Clipper 5.01. 2 Sarin ты наверное даже не знаешь что это такое? Так я скажу это КОШМАР потому что нет никаких отладчиков. По сравнение с теми которые под VC++ 6 или Borland C++ 3.1 или уж если брать компилятор времен Clipper такой как встроенный в Turbo C 2.0. Где не надо всавлять месаги с выводом сообщений или что выполняется какой то кусок программы. Что мне и приходилось делать. А потом оказалось что ошибка не в программе, а надо было индексы перестроить. Под отладчиком я бы увидел это СРАЗУ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 12:17 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
CruelGeniusНе давно правил программу на Clipper 5.01. 2 Sarin ты наверное даже не знаешь что это такое? Так я скажу это КОШМАР потому что нет никаких отладчиков. Вы меня удивили. 5.01 - это, если мне не изменяет память, CA Clipper, в котором был абсолютно нормальный отладчик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 12:27 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
softwarer Безусловно. Причем пахать неделями незачем - вопрос не в том, чтобы отловить ситуацию "у машины кончилась память", вопрос в том, чтобы отловить, где именно происходит утечка. Инструмента хватает, для разных сред свои. Это средства компилятора, или сторонние программы? Плохо, что без таких мест где может память кончится не обойтись:( Готов забится, что еслиб скрипты на ПХП не работали на протяжении секунд, то мозги греблибы лопатой. Динамические массивы и всё такое - наркотик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 12:58 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
это КОШМАР Да ничего, отлаживали, и с отладчикои, и без, на ЕС-ках хуже было. У меня самая большая программа на Clipper была на мегабайт исходного текста А переиндексация была первой рекомендацией пользователю, если он звонил и сообщал о каких-то проблемах Я начинал с Фортрана на большой машине, где последовательность действий была такая: мы с тобой одной крови :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 13:12 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
SarinЭто средства компилятора, или сторонние программы? Хм. Зависит от. Лично моя точка зрения - все, что может быть отделено от компилятора, должно быть отделено от компилятора. Все, что может быть отделено от RTL, должно быть отделено от RTL. Итп. Замкнутые системы - это наказание для программиста. В них постоянно приходится констатировать "это так, потому что это так. Может ошибка, может нет, все равно ничего не сделаешь, если не лезть править бинарники". Sarin Готов забится, что еслиб скрипты на ПХП не работали на протяжении секунд, то мозги греблибы лопатой. Динамические массивы и всё такое - наркотик. Не понял логики. Не знаю PHP и его особенностей, но совершенно не понимаю, чем "динамические массивы" заведомо принципиально хуже чего-то другого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 13:17 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
softwarer CruelGeniusНе давно правил программу на Clipper 5.01. 2 Sarin ты наверное даже не знаешь что это такое? Так я скажу это КОШМАР потому что нет никаких отладчиков. Вы меня удивили. 5.01 - это, если мне не изменяет память, CA Clipper, в котором был абсолютно нормальный отладчик. На машине с текстами клиппера и самими бинарниками отладчика не было, не буду же я бегать по городу и искать отладчик. Через интернет не было возомжности. Он дайл ап параллельно с факсом. Факс был занят. Полдня убли на это дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 14:20 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
White OwlLelikk, во времена перфокарт "чужих библиотек" не было :) И вообще, если не ясно что возвращает чужая процедурка достаточно сделать выброс промежуточных результатов. Sarin верной дорогой идет. Хотя и медленно :) Мы говорим про сегодня! Ну далеко не во всех приложениях можно ставить MessageBox. И не во всех ситуациях. Тогда уж логичнее писать в лог-файл. З.Ы. Брейкпойты все равно к цели ведут быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 16:12 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
To S.G. : Вы будете смеяться, но я начинал точно так же. To Sarin: Счастливчик! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 16:22 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
По поводу утечки памяти: Рекомендую два способа, которые хорошо помогают 1. Указатели из STL, которые обнуляются при освобождении 2. Свой указатель "оборачивать" классом, освобождая память в деструкторе. 2а. Придавать классу собственные new/delete ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 16:30 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
Sarin такие средства есть программные - например NuMega BoundsChecker и другие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 18:14 |
|
||
|
Что такое отладка?
|
|||
|---|---|---|---|
|
#18+
CruelGeniusНа машине с текстами клиппера и самими бинарниками отладчика не было, не буду же я бегать по городу и искать отладчик. Это вы смотреть не умеете. Отладчиков в Клиппере аж две штуки. Один, cld.exe, лежит в том же каталоге что и компилятор. Второй, debug.lib, может быть подлинкован непосредственно внутрь исполняемого файла и даже отдан клиенту :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2005, 18:52 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=33056292&tid=1347508]: |
0ms |
get settings: |
12ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
83ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
| others: | 260ms |
| total: | 485ms |

| 0 / 0 |
