Отладчики примеры программ по информатике

Определение 9.20 Отладчик » это программный модуль, который позволяет выполнить основные задачи, связанные с мониторингом процесса выполнения результирующей прикладной программы.

Определение 9.21 Отладка » это мониторинг процесса выполнения результирующей прикладной программы.

Отладка включает в себя следующие основные возможности:

. последовательное пошаговое выполнение результирующей прикладной программы на основе шагов по машинным командам или по операторам входного языка;

. выполнение результирующей программы до достижения ею одной из данной точек останова (адресов останова);

. выполнение результирующей программы до наступления некоторых заданных условий, связанных с данными и адресами, обрабатываемыми этой программой;

. просмотр содержимого областей памяти, занятих командами или данными результирующей программы.

Первоначально отладчики представляли собой отдельные программные модули, которые могли обрабатывать результирующую программу в терминах языка машинных команд. Их возможности в основном сводились к моделированию выполнения результирующих программ в архитектуре соответствующей компьютерной системы. Выполнение могло идти непрерывно либо по шагам.

Простейший пример использования отладчика в Visual Studio (C#)

Дальнейшее развитие отладчиков связано со следующими принципиальными моментами:

. появление интегрированных сред разработки;

. появление возможностей аппаратной поддержки средств отладки во многих компьютерных системах.

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

Второй шаг позволил значительно расширить возможности средств отладки. Теперь для них не требовалось моделировать работу и архитектуру соответствующей компьютерной системы. Выполнение результирующей программы в режиме отладки стало возможным в

той же среде, что и в обычном режиме. В задачу отладчика входили только функции перевода вычислительной системы в соответствующий режим перед запуском результирующей программы на отладку.

Во многом эти функции являются приоритетными, поскольку зачастую требуют установки системных таблиц и флагов процессора компьютерной системы.

Отладчики в современных системах программирования представляют собой модули с развитым интерфейсом пользователя, работающие непосредственно с текстом и модулями исходной программы.

С#/Visual Studio. Debug. Отладка программы. Поиск ошибок.

Многие их функции интегрированы с функциями текстовых редакторов исходных текстов, входящих в состав систем программирования.

[Wiki]

Отла́дчик или деба́ггер (англ. debugger) является модулем среды разработки или отдельным приложением, предназначенным для поиска ошибок в программе. Отладчик позволяет выполнять пошаговую трассировку, отслеживать, устанавливать или изменять значения переменных в процессе выполнения программы, устанавливать и удалять контрольные точки или условия остановки и т. д.

AQtime — коммерческий отладчик для приложений, созданных для .NET Framework версии 1.0, 1.1, 2.0, 3.0, 3.5 (включая ASP.NET приложения), а также для Windows 32- и 64-битных приложений.

Читайте также:
Как называется программа для скачивания в контакте

DTrace — фреймворк динамической трассировки для Solaris, OpenSolaris, FreeBSD, Mac OS X и QNX.

Electric Fence — отладчик памяти.

GNU Debugger — отладчик программ от проекта GNU.

IDA — мощный дизассемблер и низкоуровневый отладчик для операционных систем семейства Windows и GNU/Linux.

Microsoft Visual Studio — среда разработки программного обеспечения, включающая средства отладки от корпорации Microsoft.

OllyDbg — бесплатный низкоуровневый отладчик для операционных систем семейства Windows.

SoftICE — низкоуровневый отладчик для операционных систем семейства Windows.

Sun Studio — среда разработки программного обеспечения, включающая отладчик dbx для ОС Solaris и GNU/Linux, от корпорации Sun Microsystems.

Dr. Watson — стандартный отладчик Windows, позволяет создавать дампы памяти.

TotalView — один из коммерческих отладчиков для UNIX.

WinDbg — бесплатный отладчик от корпорации Microsoft.

Источник: ronl.org

Отладчик кодов

Тема 2. Пакеты прикладных программ

2
Это инструментальная программа, позволяющая:
— загружать исполнимые файлы, эмулируя действия загрузчика из
состава операционной системы;
— дизассемблировать код (расшифровывать мнемоники машинных
команд по имеюющимся в памяти машинным кодам);
— контролировать содержимое регистров процессора и областей
памяти;
— исполнять программу целиком и по шагам (машинным командам);
— устанавливать точки останова (breakpoint) при выполнении
программы;
— изменять области памяти и значения в регистрах;
— ассемблировать машинные команды (переводить мнемоники в
машинный код)
— и др.
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

3. Символьный отладчик

3
Символьный отладчик
Это инструментальная программа, позволяющая:
— отлаживать исполнимые файлы, написанные на том или ином
языке программирования;
— использовать имена меток, процедур и переменных, заданные
программистом — разработчиком отлаживаемой программы;
— контролировать значения переменных;
— исполнять операторы программы на языке программирования по
шагам и программу целиком;
— устанавливать точки останова при выполнении программы;
— изменять значения переменных;
— обычно входят в состав интегрированных сред разработки (IDE)
на ЯВУ (Си, Паскаль-Дельфи, FoxPro, . ) и часто работают прямо в
окне редактора исходного текста;
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

4. Особенности работы программы под отладчиком

4
• Программа исполняется непосредственно
процессором с реальной скоростью процессора,
отладчик не эмулирует работу процессора и, как
правило, не замедляет программу
• Отладчик тесно взаимодействует с аппаратурой
ЭВМ, активно внедряется в систему прерываний
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

5. Примеры отладчиков (DOS, i8086)

5
• Debug — отладчик кодов, составная часть
операционной системы DOS, интерфейс командной
строки
• AFD — отладчик кодов, интерактивная работа
• Turbo Debugger:
— отладчик кодов
— символьный отладчик для программ на Си,
Паскале и языке ассемблера
— входил в состав пакетов Turbo/Borland C/Pascal
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

6. Загрузка программы

6
• Командная строка:
td my.exe
• Меню:
File Open. имя exe-файла или com-файла
• После загрузки память выделена и регистры
процессора проинициализированы так, как сделал бы
загрузчик DOS
• Ctrl+F2 — сброс программы, вернуть все в состояние
как будто сразу после загрузки.
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

7. Отлаживаем все тот же пример:

7
Отлаживаем все тот же пример:
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

8. Окно ЦПУ

8
• Меню: View CPU
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

9.

9
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

10.

10
Текущая команда — треугольник (CS:IP). Измененные регистры — белые.
Ячейка, используемая подсвеченной командой — вверху на рамке.
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

11. Употребительные клавиши

11
Употребительные клавиши
• F5 — распахнуть окно отладчика
• F10 — перейти в меню
• Alt+F10 — вызвать контекстное меню (правая кнопка
мыши)
• Alt+F5 — посмотреть вид экрана, на который
программа производит вывод
• Клавиши выводятся в нижней строке
• При нажатии Alt и Ctrl — информация меняется
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

Читайте также:
Прекращение работы программы adobe reader что делать

12. Прокрутка кода клавишами

12
• Текущая команда отмечена треугольником
• Прокручивать окно дизассемблера вниз можно всегда
• При попытке прокрутить окно вверх дизассемблер очень часто
ошибается, хватаясь за самый длинный предшествующий
машинный код:
обратите внимание: cs_FFFF=00 — это не предыдущий байт перед
cs:0000, это самый конец того же сегмента, смещение которого на
64к БОЛЬШЕ смещения 0
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

13. Позиционирование

13
Позиционирование
• Контекстное меню: Goto
— просто число смещение в том же сегменте
— два числа через : сегмент и смещение
— имя сегментного регистра:число сегмент и смещение
— можно указать любое корректное выражение в качестве
адреса, например ds:si или ax
— просто ds смещение, равное DS!
• При вводе чисел не забываем правила языка ассемблера:
— число начинается с цифры
— B, D или H в конце — явный признак формата (двоичное,
десятичное, шестнадцатеричное)
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

14. Исполнение программы

14
• F9 — исполнить с текущей команды до конца (до
команды завершения программы) или до точки
останова
• F7 — шаг: исполнить текущую команду и остановиться
после этого (если исполняется вызов процедуры –
войти в процедуру)
• F8 — шаг: исполнить текущую и остановиться перед
следующей командой (если вызов процедуры –
выполнить ее целиком и вернуться)
• F4 — «сюда»: исполнять программу с текущей команды
и остановиться на подсвеченной строке
• F2 — установить/снять точку останова на
подсвеченной строке (ТО выделяются красным)
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

15. Точки останова (ловушки?)

15
• Локальные и глобальные: при выполнении
конкретной команды или при выполнении условия
• Безусловные: дошли до конкретной команды остановились
• Условные: выполнилось условие — остановились
(замедленное выполнение при наличии таких точек
останова) локальные и глобальные !
• Условия:
— произошло обращение к области памяти по
определенному адресу известного размера
— выполнилось условие, например, DX eq 8
• Точки останова можно объединять в группы, чтобы
разрешать/запрещать сразу несколько
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

16. Как работают точки останова?

16
Как работают точки останова?
• Если включен режим отладки (флаг TF) — после каждой
машинной команды генерируется прерывание отладки
(прерывание с номером 1) — при его обработке у отладчика есть
возможность вычислить глобальное условие
• Команда INT 3 (машинный код CCh): вызов прерывания
отладчика
• Отладчик заменяет этой командой места в коде, где нужно
остановиться; при срабатывании прерывания отладчик
восстанавливает код «как было»
B409
CC0000
CD21
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

17. Как и что можно изменять?

17
• Регистр. Контекстное меню: increment, decrement,
change
• Флаг. Контекстное меню: toggle
• Ячейка стека. Контекстное меню: change
• Область дампа.
— Контекстное меню: change
— Или просто начать набирать в области дампа или в
области символьного вида
• Код. Контекстное меню: assemble
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

18. Как искать?

18
Как искать?
• В области дампа. Контекстное меню: search
— ввести строку в кавычках или значения байтов
• В области кода. Контекстное меню: search
— ввести машинный код (байты): 0CDh
— или ввести мнемонику команды: int 21
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

19. Операции с блоками памяти

19
Операции с блоками памяти
• В окно дампа, настроиться на нужную область
памяти
• Контекстное меню: Block:
— Clear — залить нулями
— Move — переместить
— Set — залить указанным значением
— Read — прочитать содержимое из файла
— Write — записать содержимое в файл
• Блок можно выделить в отладчике мышью или
указывать его адрес и размер цифрами
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

Читайте также:
Программа virtualbox не работает

20. Символьная отладка

20
Символьная отладка
• Turbo Debugger — символьный отладчик
• Если в скомпилированную программу включить
отладочную информацию — он сможет шагать не по
машинным командам, а по строкам вашего исходного
текста, и показывать не адреса, а имена меток и
переменных
• Он понимает не только ассемблерный исходник, но и
исходник на Турбо-Си или Турбо-Паскале
• Исходный текст и исполнимый файл нужно
разместить рядом, имя файла исходного текста
прописано в отладочной информации в EXE
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

21. Исходники ASM

tasm -zi my.asm
tlink -v my.obj
td my
Исходники ASM
21
Вернуться в это окно — F3 или View: Module
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

22. Переходим в окно CPU

22
Контекстное меню: Mixed:
— Both — отображать
исходный текст вместо
дизассемблера, если
возможно
— No — отображать только
результат
дизассемблирования
— Yes — отображать
исходный текст и
машинный код,
получающийся из него
(это особенно интересно
для ЯВУ)
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

23. Используем имя метки

23
Используем имя метки
• Переходим в окно дампа
• Goto в контекстном меню
• Вводим просто s (имя метки данных строки)
доц. Гольцов А.Г. «Системное программное обеспечение», 3 курс

Источник: ppt-online.org

Элементы командной программы отладчика

Программа команд отладчика — это небольшое приложение, состоящее из команд отладчика и маркеров потока управления, таких как .if, .for и .while. (Полный список маркеров потока управления и их синтаксис см. в разделе Маркеры потока управления.)

С помощью фигурных скобок ( ) можно заключить блок инструкций в более крупный блок команд. При вводе каждого блока вычисляются все псевдонимы в блоке. Если позже вы измените значение псевдонима в блоке команд, команды после этого момента не будут использовать новое значение псевдонима, если они не находятся в подчиненном блоке.

Невозможно создать блок с помощью пары фигурных скобок. Необходимо добавить маркер потока управления перед открывающей фигурной скобкой. Если вы хотите создать блок только для оценки псевдонимов, следует использовать маркер .block перед открывающей фигурной скобкой.

Программа команд отладчика может использовать псевдонимы с именем пользователя или псевдонимы с фиксированным именем в качестве локальных переменных. Если вы хотите использовать числовые или типизированные переменные, можно использовать $tnпсевдорегистров.

Псевдонимы с именами пользователей оцениваются только в том случае, если они не находятся рядом с другим текстом. Если вы хотите оценить псевдоним, который находится рядом с другим текстом, используйте маркер $ < >(интерпретатор псевдонимов). Этот маркер имеет необязательные параметры, которые позволяют оценивать псевдоним различными способами.

Вы можете добавлять комментарии в командную программу отладчика с помощью двух знаков доллара ($$ (описатель комментариев)). Не следует вставлять комментарий между маркером и его элементами (например, фигурными скобками или условиями).

Примечание Не следует использовать звездочку (* (описатель строки комментария)). Так как комментарии, указанные звездочкой, не заканчиваются точкой с запятой, остальная часть программы игнорируется.

Особенно полезны строковые операторы $scmp, $sicmp и $spat в синтаксисе MASM. Дополнительные сведения об этих операторах см. в разделе Числа и операторы MASM.

Источник: learn.microsoft.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru