Міністерство освіти і науки УкраїниНаціональний технічний університет України
«Київський політехнічний інститут ім. І. Сікорського»
Кафедра автоматизації проектування енергетичних процесів і систем
Лабораторна робота №3
з дисципліни «Операційні системи»
«Технологія роботи з налагоджувачем TurboDebugger (TD) фірми Borland»
КИЇВ-2022
Лабораторна робота №3
Мета роботи: ознайомитися з технологією роботи налагоджувача TD.
Порядок роботи:
Ознайомитися з етапами процесу налагодження програми.
Ознайомитися з можливостями TD.
Засвоїти типові операції (переміщення між вікнами налагоджувача, зміна вікон, покрокове виконання команд, внесення змін до даних оперативної пам’яті, внесення змін у вміст регістрів, внесення змін до стеку, встановлення контрольних точок).
Продемонструвати основні операції з налагодження на прикладі програми з лабораторної роботи № 2.
Теоретична частина
Процес налагодження в загальному випадку можна розділити на чотири
етапи:
1. Виявлення помилки.
2. Пошук її місцезнаходження.
3. Визначення причини помилки.
4. Виправлення помилки.
Турбоналагоджувач можна використати для вирішення двох важких проблем процесу налагодження: пошуку місця знаходження помилки і її причини. Також є можливість тестувати нові значення змінних, щоб побачити, як вони впливають на вашу програму. Ці можливості реалізуються за допомогою трасування, покрокового виконання, перегляду, змін й простежування.
Покрокове виконання. Ви можете виконувати програму по одному операторі, але пропускати виклики процедур і функцій. Якщо ви впевнені, що в процедурах і функціях немає помилок, то пропуск їхнього виклику збільшить швидкість налагодження.
Перегляд. Ви можете у Турбоналагоджувачі створити спеціальне вікно для показу всіляких речей - змінних, їхніх значень, точок зупинки, вмісту стека, файлів реєстрації, даних, файлів вихідних текстів, кодів ЦП, пам'яті, регістрів, інформації процесора, арифметики із плаваючою крапкою, виводу програми.
Перевірка. Ви можете у Турбоналагоджувачі одержати вміст складних структур даних з вашої програми.
Зміна. Можна змінити вміст змінної (як локальної, так і глобальної) на нове значення.
Простежування. Ви можете виділити деякі програмні змінні й простежувати зміну їхніх значень у процесі роботи програми.
Турбоналагоджувач запускається таким чином:
Td ім’я виконуваного файла.ехе
Запускаємо налагоджувач Td Lab2(3).exe:
/
Після запуску файлу TD маємо таке вікно:
/
У нас відкрилося вікно CPU(ЦП), що показує поточний стан центрального процесора (ЦП). Воно містить п'ять областей:
машинні інструкції – вміст сегменту коду вихідної програми (CS:зсув машинна інструкція вхідна команда);
шістнадцятирічні байти даних (DS:зсув шістнадцятирічні байти);
вміст регістрів ЦП (AX, BX, CX, DX, SI, DI, BP, SP, DS, ES, SS, CS, IP);
вміст регістр прапорців ЦП (C, Z, S, O, P, A, I, D);
вміст стека у вигляді шістнадцятирічних байтів (SS: шістнадцятирічні байти).
Верхній рядок відладчика є головним меню з певними пунктами, які можна відкрити різними способами: натиснути F10 і мишкою натиснути на потрібний елемент або ж замість миші натиснути першу букву елемента меню, що потрібне; інший спосіб це Alt+перша буква елемента меню. Звичайно можна переміщуватись по меню за допомогою стрілок.
В вікні View → Dump (Дамп) виводиться вміст області пам'яті.
У вікні View → Registers (Регістри) виводиться вміст регістрів і прапорів процесора (ЦП). Дане вікно містить дві області.
У вікні Stack (Стек) виводиться поточний стан стека. При цьому внизу зазначені найперші виклики, а потім - всі наступні виклики в тому порядку, якому вони виконувалися.
/
Переміщуватися між областями можна за допомогою клавіші Tab або Shift Tab.
Нижній рядок (горячі клавіші) – це основні команди, які виконуються за допомогою функціональних клавіш F1 – F10.
Натискання клавіш ALT+Enter розпахує вікно TD на весь екран, повторне натискання цих клавіш повертає вікно до попереднього розміру.
Alt-F5 – це оперативна клавіша, що дозволяє перемикатися між операційним середовищем й екраном користувача.
Можна викликати будь-яке вікно за допомогою натискання клавіш ALT+номер вікна або шляхом послідовного перебору F6-Next.
Для виходу з TD треба натиснути ALT+X або команду File → Quit і ви повертаєтесь у командний рядок.
Після запуску TD перше речення позначається значком ►. Ця мітка відноситься до найпершої команди сегмента команд і її значення має дорівнювати 0.
/
Відладка програми здійснюється за допомогою трасування-F7(trace)(або ж у меню Run), тобто необхідно виконати покрокове (поператорне) виконання команд програми, при цьому буде заходити в кожний цикл, і проходити крок за кроком (є також зворотнє трасування). Але одночасно необхідно при виконанні кожної команди аналізувати вміст РЕГІСТРІВ (шістнадцятирічне представлення), тобто розуміти для себе чи вірно виконалася команда.
Покрокове виконання - F8 (step) може виконувати програму, не заходячи в цикли, тобто це означає, що будуть виконуватися підпрограми і цикли як одна дія (це прискорює процес відладки). А можна виконати якийсь певний блок програми (декілька операторів) відразу, для цього необхідно встановити курсор на тому реченні, до якого хочемо виконати програму, далі натискаємо F4.
Більшість вікон Турбо відладчика (15 типів вікон) виводиться з меню View (Огляд). Інший клас вікон, що називається вікнами перевірки (Inspector), виводиться при виборі елемента меню Data Inspect (Дані Перевірка) або команди локального меню Inspect.
Коли ви відкриваєте одне (або більше) із цих вікон, їх можна переміщати, міняти розмір, закривати й виконувати інші операції за допомогою команд меню Window (Вікно) ALT-F3 закриває вікно, ALT-F6 - відновлює і Е (System - Система).
/
Можна змінювати вміст регістрів. Для цього потрібно вікно зробити активним, натиснути Alt+F10 (можна виконати операції інкремент, дикремент або обнулити, або ввести своє значення).
/ /
У цьому випадку використано інкремент. Регістр ах збільшився на 1.
Alt-F10 - відкриває для кожного внутрішнього вікна процесора додаткове меню. Найчастіше використовується Goto, за допомогою якого можна задати будь-яку адресу і отримати дамп цієї ділянки.
/
Нижче зображено вміст вікна дампа після введення початкової адреси у вигляді DS: 0000.
/
Можна змінити (ввести) дані у вигляді символів, слів у області пам'яті(Dump).
/ /
/
У вікні Breakpoints (Точки переривань) виводяться встановлені точки зупинки. Точка зупинка визначає те місце у програмі, де буде зупинено виконання програми. При цьому ви можете перевірити стан програми. Перед виконанням програми для встановлення точок переривань треба перейти в потрібний рядок програми та натиснути клавішу F2. Рядок з контрольною точкою буде підсвічуватися синім кольором. Щоб вилучити контрольну точку, треба знову перейти в потрібний рядок програми та натиснути клавішу F2.
/
Можна зразу виконати цілий фрагмент програми, тобто декілька речень, до поточного положення курсора. Для цього треба встановити курсор перед тим реченням, на якому треба зробити зупинку та натиснути клавішу F4 (here, сюди). Далі знову можна виконувати програму, натискаючи F8 або F4.
Для повторного виконання програми треба її рестартувати, вибравши пункт Run → Program reset або натиснути CTRL+F2.
/
Виконуємо програму, за допомогою Alt+F5 переходимо у середовище DOS для перевірки результату роботи програми.
/
В результаті вивелось NACHINAEM!!
Код другої лабораторної роботи:
Title lab2.asm
.MODEL SMALL
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
Висновок: у ході лабораторної роботи ознайомлено з технологією роботи налагоджувача TD. Засвоєно типові операції (переміщення між вікнами налагоджувача, зміна вікон, покрокове виконання команд, внесення змін до даних оперативної пам’яті, внесення змін у вміст регістрів, внесення змін до стеку, встановлення контрольних точок). Продемонстровано основні операції з налагодження на прикладі програми з лабораторної роботи № 2.