Міністерство освіти і науки України
НТУУ «Київський політехнічний інститут ім. Ігоря Сікорського»
Кафедра АПЕПС
Лабораторна робота №3
з дисципліни «Операційні системи»
«Технологія роботи з налагоджувачем TurboDebugger (TD) фірми Borland»
Гр. ТР-15
Турлака Сергія
Перевірила
д.т.н., проф. Левченко Л.О.
КИЇВ 2022
Мета роботи
Ознайомитися з технологією роботи налагоджувача TD.
Порядок роботи:
Ознайомитися з етапами процесу налагодження програми.
Ознайомитися з можливостями TD.
Засвоїти типові операції (переміщення між вікнами налагоджувача, зміна вікон, покрокове виконання команд, внесення змін до даних оперативної пам’яті, внесення змін у вміст регістрів, внесення змін до стеку, встановлення контрольних точок).
Продемонструвати основні операції з налагодження на прикладі програми з лабораторної роботи № 2.
Теоретична частина
Процес налагодження в загальному випадку можна розділити на чотири етапи:
Виявлення помилки.
Пошук її місцезнаходження.
Визначення причини помилки.
Виправлення помилки.
Трасування: дозволяє виконувати програму по одному оператору.
Зворотне трасування Ви можете виконати код у зворотному порядку.
Покрокове виконання. Ви можете виконувати програму по одному операторі, але пропускати виклики процедур і функцій. Якщо ви впевнені, що в процедурах і функціях немає помилок, то пропуск їхнього виклику збільшить швидкість налагодження.
Перегляд: Ви можете у Турбоналагоджувачі створити спеціальне вікно для показу всіляких речей - змінних, їхніх значень, точок зупинки, вмісту стека, файлів реєстрації, даних, файлів вихідних текстів, кодів ЦП, пам'яті, регістрів, інформації процесора, арифметики із плаваючою крапкою, виводу програми.
Перевірка. Ви можете у Турбоналагоджувачі одержати вміст складних структур даних з вашої програми. Зміна. Можна змінити вміст змінної (як локальної, так і глобальної) на нове значення.
Простежування. Ви можете виділити деякі програмні змінні й простежувати зміну їхніх значень у процесі роботи програми.
Турбо налагоджувач запускається таким чином:
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: шістнадцятирічні байти).
Щоб вивести на екран значення поля даних потрібно навести курсор на ім'я потрібного нам поля і вибрати меню Data-Inspect, тоді з'явиться вікно, де можна скоректувати ім'я. Після виведеться вікно, в якому будуть міститися характеристики та значення певної змінної. У вікні Inspecting можна змінити значення цього поля даних: натискаємо Alt+F10 (ця комбінація робить вікно активним, тобто відкриває його внутрішнє меню з додатковими якимись можливостями), далі Change, і у новому відкритому вікні можемо прописати потрібне значення. І якщо тепер виконати програму, то на екран виведеться результат вже зі змінами.
Виконання роботи
Запускаємо налагоджувач та передаємо одразу через параметр виконуваний файл.
/
Вікно CPU буде складатися з 5 частин.
/
Натиснувши F7 запускається трасування. А кнопка F8 змушує програму покроково виконувати кожний рядок, але не заходячи всередину підпрограми або функції.
/
Після проходження команди 21h програма завершує роботу, результат якої подивимось, нажавши Alt + F5, та повернувшись знову за допомогою такої же команди.
/
Також можна спостерігати за життєвим циклом деяких регістрів. Є функція інкременту, декременту та просто встановлення нового значення, як показано нижче:
/
Точка припинення встановлюється через F2 після виділення певного рядка.
/
Можна оглядувати значення змінних або регістрів через меню Data – Inspect
/
/
Область Dump можна переглядати не тільки по байтово, а іншими способами:
/
Тут дані демонструються як word:
/
Вхідні дані програми можна змінювати під час виконання по байтово, як показано нижче.
/
Вивід результата роботи буде іншим.
/