Міністерство освіти і науки УкраїниНаціональний технічний університет України
«Київський політехнічний інститут ім. І. Сікорського»
Кафедра автоматизації проектування енергетичних процесів і систем
Лабораторна робота №3
з дисципліни «Операційні системи»
«Технологія роботи з налагоджувачем TurboDebugger (TD) фірми Borland»
Варіант - 15
Мета роботи: ознайомитися з технологією роботи налагоджувача TD.
Порядок роботи:
1. Ознайомитися з етапами процесу налагодження програми.
2. Ознайомитися з можливостями TD.
3. Засвоїти типові операції (переміщення між вікнами налагоджувача, зміна вікон, покрокове виконання команд, внесення змін до даних оперативної пам’яті, внесення змін у вміст регістрів, внесення змін до стеку, встановлення контрольних точок).
4. Продемонструвати основні операції з налагодження на прикладі програми з лабораторної роботи No 2.
Теоретична частина та хід роботи:
Основними причинами використання Турбоналагоджувача є пошук місця у якому трапилась помилка та її загальна причина. Ще у ньому можна протестувати нові значення змінних(які можна задати самотужки), щоб побачити як вони вплинуть на вашу програму. Усі ці можливості реалізуються саме завдяки таким його функціям: трасування, покрокове виконання, перегляду, змін та простежування.
Функція трасування дозволяє виконати написану програму по одному оператору. У той час як зворотнє трасування дозволяє це зробити у зворотньому порядку.
Покрокове виконання дозволяє виконати програму по одному оператору, але пропускаючи виконання процедур та функцій. Це дуже зручно, коли ти впевнений, що ні в функціях, ні в процедурах помилок немає, і тоді це значно скоротить час налагодження помилки.
Перегляд. У Турбоналагоджувачі можна створити спеціальне вікно, за допомогою якого можна буде слідкувати за такими речами: змінними, точками зупинки, вмістом стеку, файлами реєстрації, данними, файлами вхідних текстів, кодами ЦП, пам’яттю, регістрами, інформацією процесора, арифметикою із плаваючою крапкою, виводом програми.
Перевірка. За допомогою неї, у Турбоналагоджувачі можна одержати вміст складних структур даних з програми.
Зміна. За допомогою неї можна змінити вміст змінної, локальної і глобальної, на нове значення.
Простежування. За допомогою нього можна виділити деякі програмні змінні й простежувати зміну їхніх значень у процесі роботи програми.
Турбоналагоджувач запускається такою командою:
Td iм’я_виконуваного_файлу.exe
У моєму випадку я буду використовувати команду:
Td fund2.exe
/
Ось як виглядає Турбоналагоджувач після запуску файлу:
/
Одразу звернемо увагу на верхній та нижній рядок.
Нижній рядок – це рядок гарячих клавіш, тобто основні команди які виконуються за допомогою функціональних клавіш F1-F10.
Верхній рядок – це рядок меню команд, щоб включити обраний з нього елемент можна скористатись комбінацією Alt-(F, E, V, R, B, D, O, W, H).
У самому вікні CPU ми можемо побачити такі вікна:
Вхідного тексту програми, якраз у ньому можна побачити вхідний сегмент тексту програми (CS: зсув інструкція вхідна команда)
Дампу. У ньому виводиться вміст області пам’яті. У ньому можна вводити дані у вигляді символів, шістнадцятирічних байт і тд.
Регістрів. Воно містить регістри центрального процесора.(AX, BX, CX, DX і тд).
Флагів. Це вікно містить регістри прапорців(C, Z, S, O, P, A, I, D).
Стеку. Воно містить стек у вигляді шістнадцятирічних байт (SS: шістнадцятирічні байти).
/
За допомогою клавіши Tab можна перемыщуватись між вікнами.
Alt-Enter – можна відкрити повноекранний режим, а за повториного наскання повернути вікно до попереднього вигляду.
Клавіша Alt-F5 – це оперативна клавыша, що дозволяє перемикатися міє операційним середовищем й екраном користувача.
Alt+номер – викликає будь-яке вікно або шляхом F6-Next.
Alt-X – вихід із Td.
Alt-F10 – відкриває для кожного внутрішнього вікна процесора додаткове меню.
Мітка у першому рядку позначає найпершу команду сегменту команд і її значення має бути 0.
Відладка програми здійснюється за допомогою трасування (F7, або можна через меню Run), тобто необхідно виконати покрокове виконання команд програми, при цьому буде в кожний цикл, і проходити крок за кроком. Або якщо вам буде зручніше можна скористуватись зворотнім трасуванням.
Також можна скористатись покроковим виконанням програми (F8), за допомогою нього можна виконати програму не заходячи в цикли. Усі підпрограми та цикли будуть виконуватись як одна дія. Ця функція значно прискорить процес відлаки, авжеж, якщо ви впевнені що немає помилки саме у циклах та підпрограмах. Також можна виконати певний блок програми відразу, для цього потрібно встановити курсор на тому місці, до якого хочемо виконати програму та настиснути F4.
Символи add [bx + si],al відладчик створює сам, задля того, щоб деасемблувати проміжок між сегментом команд і сегментом даних, заповнений нулями. Цьому сиволу відповідає код 0000h.
/
Скористаємось клавішою F8(Step) що пройтись по нашій програмі:
/
Скориставшись комбінацією Alt-F5 побачимо результат:
/
Змінивши у вікні дампу із початкових значень на ось такі:
/
Ми отримали ось такий результат:
/
Код з другої лабораторної:
text segment
assume CS:text, DS:data
begin: mov AX, data
mov DS, AX
mov AH, 09h
mov DX, offset mesg
int 21h
mov AH, 4ch
mov Al, 0
int 21h
text ends
data segment
mesg db "NACHINAEM!$"
data ends
stk segment stack
db 256 dup(0)
stk ends
end begin
Висновок:
Під час виконання даної лабораторної роботи я ознайомився із роботою з Турьоналагоджувачем фірми Borland. Також навчився використовувати можливості Турбоналагоджувача на практиці. Засвоїв типові операції (переміщення між вікнами, покрокове виконання команд, внесення змін до даних опертивної пам’яті, вмісту регістрів та стеку, встановлення контрольних точок). Дослідження усіх цих фукцій були виконані за кодом лабораторної роботи №2.