| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
АДДДДДДДДДДДДДДДДДДЩііі і Back Trace Alt-F4 і ііііі
ЪДДДДДДДДДДДДДДДДДДДДДДДЩіі і Instruction Trace Alt-F7 і ііііі
і ЪДДДДДДДДДДДЩі іДДДДДДДДДДДДДДДДДДДДДДДДДДі ііііі
і v і і Arguments... і ііііі
і ЪДДДДДДДДДДДДДДДДДДї і і Program reset Ctrl-F2 і ііііі
і і File і і АДДДДДДДДДДДДДДДДДДДДДДДДДДЩ ііііі
і іДДДДДДДДДДДДДДДДДДі і ЪДДДДДДДДДДДДДДДЩіііі
і і Open... і і і іііі
і і Change dir... і і v ЪЩііі
і і Get Info... і і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДї і ііі
і і і і і Breakpoints і і ііі
і і і і іДДДДДДДДДДДДДДДДДДДДДДДДДДі і ііі
і іДДДДДДДДДДДДДДДДДДі і і Toggle F2 і і ііі
і і Symbol Load... і і і At... Alt-F2 і і ііі
і і і і і Changed memory global... і і ііі
і іДДДДДДДДДДДДДДДДДДі і і Expression true global...і і ііі
і і Quit Alt-X і і і Handware Breakpoint... і і ііі
і АДДДДДДДДДДДДДДДДДДЩ і і Delete all і і ііі
і ЪДДДДДДДДДДДЩ АДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і ііі
і і ЪДДДДДДДДДДДДДДЩ ііі
і v і ііі
і ЪДДДДДДДДДДДДДДДДДДДї v ііі
і і View і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїііі
і іДДДДДДДДДДДДДДДДДДДі і Data іііі
TDeb 3.0 #2-3 = 121 =
і і Breakpoints і іДДДДДДДДДДДДДДДДДДДДДДДДДДДДДіііі
і і Stack і і Inspect... іііі
і і Log і і Evaluateіmodify... Ctrl-F4 іііі
і і Watches і і Add watch... Ctrl-F7 іііі
і і Variables і і Function return іііі
і і Module... F3 і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩііі
і і File... і ііі
і і CPU і ЪДДДДДДДДЩіі
і і Dump і ЪДДДДДДДДДДДДї і іі
і і Registers і ЪДДі Module... і і іі
і і Numeric Processor і і і Dump і і іі
і і Execution History і і і File... і і іі
і і Hierarchy і і АДДДДДДДДДДДДЩ і іі
і і Windows messages і і і іі
і і Another >іДДЩ і іі
і АДДДДДДДДДДДДДДДДДДДЩ ЪДДДДДДДДДДДДДДДДДДДДДДДДЩ іі
і ЪДДДДДДДДЩ ЪДДДДДДДДДЩі
і v і і
і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї v і
і і Options і ЪДДДДДДДДДДДДДДДДДДДДїі
і іДДДДДДДДДДДДДДДДДДДДДДДДДДДі і Window іі
і і Language... Source і іДДДДДДДДДДДДДДДДДДДДіі
і і Macros >іДДї і Zoom F5 іі
і і Display options... і і і Next F6 іі
і і Path for source... і і і Next pane Tab іі
і і Save options... і і і Size/move Ctrl-F5 іі
і і Restore options... і і і Iconsize/restore іі
і АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і і Close Alt-F3 іі
і ЪДДДДДДДДДДДДДДДДЩ і Undo close Alt-F6 іі
і і іДДДДДДДДДДДДДДДДДДДДіі
і v і Dump pane to log іі
і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї і User screen Atl-F5 іі
і і Create... Alt = і і 1 Module TPDEMO іі
і і Stop recording Alt - і і 2 Watches іі
і і Remove і АДДДДДДДДДДДДДДДДДДДДЩі
і і Delete all і ЪДДДДДДДДДДДДДЩ
і АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і
АДДДДДДДДДДДДДДї v
і ЪДДДДДДДДДДДДДДДДДДДДДДДї
v і Help і
ЪДДДДДДДДДДДДДДДДДДДДДДДї іДДДДДДДДДДДДДДДДДДДДДДДі
і Edit і і Index Shift-F1 і
іДДДДДДДДДДДДДДДДДДДДДДДі і Previous topic Alt-F1 і
і Copy Shift-F3 і і Help on help і
і Paste Shift-F4 і АДДДДДДДДДДДДДДДДДДДДДДДЩ
і Copy to Log і
і Dump pane to log і
АДДДДДДДДДДДДДДДДДДДДДДДЩ
TDeb 3.0 #2-3 = 122 =
Глава 14. Отладка программы
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Отладка программы аналогична всем другим этапам реализации
программы - это наполовину искусство, наполовину наука. Существу-
ют специальные процедуры, которые можно использовать для отслежи-
вания ошибки, однако, чтобы сократить этот процесс, требуется
также хорошая интуиция.
В большинстве отлаживаемых вами программ лучшее, что вы мо-
жете сделать - это быстро найти источник ошибок в исходном коде.
Для этого нужно освоить соответствующие методы, а также изучить
такие способы, которые позволят избежать повторного появления
ошибок.
Мы начнем с того, что посмотрим, с чего можно начать отладку
программы, которая не работает должным образом.
В данной главе мы обсудим также различные подходы к отладке,
разные типы ошибок, которые могут встречаться в программе, и
предложим методы проверки программы, позволяющие убедиться в пра-
вильности ее работы.
Давайте посмотрим, с чего можно начать, когда программа не
работает корректно.
Когда что-то не работает
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Прежде всего не следует впадать в панику. Даже наиболее
опытные программисты редко пишут программы, которые начинают ра-
ботать с первого раза.
Чтобы избежать напрасной траты времени на долгие и бесплод-
ные поиски ошибки, постарайтесь побороть стремление случайно уга-
дать, где находится ошибка. Лучшим методом здесь будет универ-
сальный принцип "разделяй и властвуй".
Нужно сделать ряд предположений, проверив каждое из них по
очереди. Например, вы можете предположить: "Ошибка должна возни-
кать перед вызовом функции xyz". Затем нужно проверить это пред-
положение, остановив программу перед вызовом функции xyz и пос-
мотрев, есть ли ошибка. Если вы обнаружите ошибку в этой точке,
можно сделать следующее предположение, что ошибка возникает в
программе где-то раньше.
С другой стороны, если при вызове функции xyz все выглядит
прекрасно, ваше предположение оказалось неверным. Нужно изменить
это предположение на следующее: "Ошибка возникает где-то после
вызова функции xyz. Выполнив ряд аналогичных проверок, вы скоро
найдете ту часть программы, где возникает ошибка.
Это прекрасно, скажете вы, но как же определить после оста-
TDeb 3.0 #2-3 = 123 =
новки программы, что она ведет себя правильно? Один из наилучших
путей проверки поведения программы состоит в анализе значений пе-
ременных и объектов данных программы. Например, если у вас есть
подпрограмма, очищающая массив, вы можете проверить ее работу,
остановив программу после выполнения данной подпрограммы и прове-
рив затем каждый элемент массива, чтобы убедиться, что он очищен.
Стиль отладки
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
У каждого свой стиль как разработки программы, так и ее от-
ладки. Те рекомендации по отладке, которые мы здесь приводим, яв-
ляются лишь отправными пунктами, которые позволят вам сформиро-
вать свой подход.
В многих случаях на метод отладки влияет предполагаемое ис-
пользование (назначение) программы. Некоторые программы вы пишете
для себя, либо они будут использованы только один или два раза
для выполнения конкретной задачи. Для таких программ разносторо-
нее тестирование всех их элементов было бы напрасной тратой вре-
мени, особенно, если после проверки ее выходных данных вы видите,
что программа работает правильно. Для тех программ, которые пред-
полагается распространять, или для тех, которые выполняют задачу,
правильность которой трудно определить с помощью проверки, может
оказаться желательным более строгое тестирование.
Полное выполнение
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Для простых программ лучший подход, вероятно, состоит в том,
чтобы просто запустить программу и посмотреть, что получилось.
Если при такой проверке будут обнаружены ошибки, вы можете "сде-
лать шаг назад" и запустить программу с максимально простыми
входными данными, чтобы проверить затем ее вывод. Затем можно пе-
рейти к проверке с более сложными входными данными, и так далее,
пока выходная информация не станет неверной. Это даст вам хорошее
представление о том, насколько корректно работает программа.
Последовательное тестирование
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Если вы хотите полностью убедиться, что программа работает
правильно, нужно проверить отдельные подпрограммы, а также убе-
диться, что программа выдает ожидаемые результаты для некоторых
тестовых входных данных. Это можно сделать двумя способами: можно
выполнить проверку каждой подпрограммы, включив ее в програм-
му-тест, которая вызывает подпрограмму с тестовыми входными дан-
ными, или использовать отладчик для пошагового выполнения каждой
подпрограммы, пока не будет выполнена вся программа.
TDeb 3.0 #2-3 = 124 =
Типы ошибок
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Ошибки в программе можно разбить на две больших категории:
ошибки, относящиеся к используемому языку (Си, Паскалю или Ас-
семблеру), и ошибки, общие для всех языков программирования и
операционных сред.
|
adfun.ru
|
|
|
|