A TURBO DEBUGGER HASZNÁLATA



Hasonló dokumentumok
Elemi alkalmazások fejlesztése I.

Operációs rendszerek. Tanmenet

Assembly nyelv x86-os processzorokhoz

Operációs rendszerek. Tanmenet

Az eszközpaletta. Felsı sor balról jobbra. Második sor balról jobbra 1/7

Ablak és ablakműveletek

Mikrorendszerek tervezése

Windows mappaműveletek

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

A ChipScope logikai analizátor

Digitális technika VIMIAA01 9. hét

Technikai információk fejlesztőknek

2. modul - Operációs rendszerek

QGIS tanfolyam (ver.2.0)

Operációs rendszerek. Tanmenet

A Novitax ügyviteli programrendszer első telepítése

Küls eszközök. Dokumentum cikkszáma: Ez az útmutató a külön beszerezhető külső eszközök használatát ismerteti

Az alábbiakban szeretnénk segítséget nyújtani Önnek a CIB Internet Bankból történő nyomtatáshoz szükséges böngésző beállítások végrehajtásában.

Operációs Rendszerek. Windows Parancssor

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

Küls eszközök. Dokumentum cikkszáma: Ez az útmutató a külön beszerezhető külső eszközök használatát ismerteti

MultiBoot. Felhasználói útmutató

Ismerkedés az új felülettel

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Az assembly nyelv sor-orientált nyelv, tehát minden sorba pontosan egy utasítás kerül. Egy sor mezőkből áll a következőképpen:

F2. A Delphi 5 Enterprise felhasználói felülete

Programzás I gyakorlat

Nyomtató telepítése. 1. ábra Nyomtatók és faxok Nyomtató hozzáadása

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

Hálózati adminisztráció Linux (Ubuntu 8.04) 7. gyakorlat

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

18. Szövegszerkesztők

Matlab Fuzzy Logic Toolbox

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Munka a fájlokkal. Az általánosan használt fájltípusok. Programfájlok. Adatfájlok

MPLAB ICD használata

MPLAB leírás V1.1. Projektek kezelése. MPLAB leírás - dr. Kónya László 1

Állomány (fájl) = összetartozó adathalmaz, program, melyet a számítógép egyetlen egységként kezel.

PDF. Tartalomjegyzék 1/21

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Laborsegédlet 3. Labor

Áttérés az Access 2010-es verziójára

1.A. feladat: Programablakok

Műveletek makrókkal. Makró futtatása párbeszédpanelről. A Színezés makró futtatása a Makró párbeszédpanelről

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak.

A hibát az alábbi Python program segítségével tudjuk előidézni:

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

Fordítóprogramok szerkezete avagy Mi történik Pascalban mikor F9-et nyomunk?

Külső eszközök Felhasználói útmutató

Az operációs rendszer fogalma

Külső eszközök Felhasználói útmutató

Szoftverfrissítés Felhasználói útmutató

ELSŐ LÉPÉSEK A SZÁMÍTÓGÉPEK RODALMÁBA AMIT A SZÁMÍTÓGÉPEKRŐL TUDNI ÉRDEMES

A számítógépes adatgyűjtő program használata

A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan

TÖMÖRÍTÉS, DARABOLÁS ELSŐ TÉMAKÖR: FÁJLKEZELÉS FÁJLOK BECSOMAGOLÁSA

Külső eszközök. Felhasználói útmutató

A FileZilla program beállítása az első belépés alkalmával

MultiBoot Felhasználói útmutató

Molnár Mátyás. Bevezetés a PowerPoint 2010 használatába. Csak a lényeg érthetően!

M-Fájlok létrehozása MATLAB-ban

Külső eszközök. Felhasználói útmutató

KIRA. KIRA rendszer. Telepítési útmutató v1

FÁJLOK ÉS MAPPÁK MÁSOLÁSA PENDRIVE-RA ÉS CD-RE A LEGEGYSZERŰBBEN WINDOWS XP-N

BATCH Programozás. Tartalomjegyzék

Alapvető beállítások elvégzése Normál nézet

Banki utalás fájl. Bank, Pénztár/Átutalás előkészítése menüpontban készíthetjük el a banki utalás fájlt.

Importálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba

I. Bevezetés. 1. ábra A Java "logója"

PwC EKAER Tool felhasználói leírás május

Szoftverfrissítések Felhasználói útmutató

BAUSFT. Pécsvárad Kft Pécsvárad, Pécsi út 49. Tel/Fax: 72/ ISO-bau. Szigetelés kiválasztó verzió.

Tartalom jegyzék 1 BEVEZETŐ SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

munkafüzet open eseményéhez

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv


T-AVL Nyomkövető webkliens

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba

Számítógépes alapismeretek 2.

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Budapest, oldal

Computer Setup Felhasználói útmutató

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

14.2. OpenGL 3D: Mozgás a modellben

Digitális rendszerek. Utasításarchitektúra szintje

AZ N-WARE KFT. ÁLTAL ELEKTRONIKUSAN ALÁÍRT PDF DOKUMENTUMOK HITELESSÉGÉNEK ELLENŐRZÉSE VERZIÓ SZÁM: 1.3 KELT:

Adat le,- és feltöltés a DOS operációs rendszerrel rendelkező Topcon mérőállomásokra, TopconLink szoftver alkalmazásával (V1.0)

SEGÉDLET "Mikrokontroller programozás" laboratóriumi gyakorlataihoz

C/C++ programozás UNIX környezetben

Digitális terepmodell modul

Adóbevallás leadása elektronikusan

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz

é rtésí té sék szű ré sé

A Canvas LMS új és régi felülete közti különbségek

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

Joint Test Action Group (JTAG)

Átírás:

HASZNÁLATA

Az eddig megírt programjaink működését nem tudtuk ellenőrizni, így elég kényelmetlen programozni, hogy nem látjuk, tényleg azt csinálja-e a program, amit elvárunk tőle. Ha valami rosszul működik, netán a számítógép semmire sem reagál (ezt úgy mondjuk, hogy "kiakadt" vagy "lefagyott"), a hiba megkeresése egyszerűen reménytelen feladat segítség nélkül. Ezt a természetes igényt elégítik ki a különböző debugger (nyomkövető, de szó szerint "bogártalanító ") szoftverek ill. hardverek. (Az elnevezés még a számítástechnika hőskorszakából származik, amikor is az egyik akkori számítógép működését valamilyen rovar zavarta meg. Azóta hívják a hibavadászatot "bogárirtásnak".) A Turbo Assemblert és Linkert készítő Borland cég is kínál egy szoftveres nyomkövető eszközt, Turbo Debugger (TD) néven. Most ennek használatával fogunk megismerkedni. A Turbo Debugger fő tulajdonsága, hogy képes egy futtatható állományt (.EXE vagy.com kiterjesztéssel) betölteni, majd annak gépi kódú tartalmát Assembly forrásra visszafejteni. Ezt hívjuk disassemblálásnak (disassembly). A legszebb a dologban az, hogy a programban szereplő kód- és memóriahivatkozásokat konkrét számok helyett képes az eredeti forrásban szereplő szimbólumokkal megjeleníteni. Ezenkívül minden utasítást egyenként hajthatunk végre, ha akarjuk, többször is, sőt megadhatjuk, hogy a program végrehajtása egy bizonyos feltétel teljesülése esetén szakadjon meg. Figyelhetjük a memória tetszőleges területének tartalmát, a regiszterek és flag-ek értékeit, s mindezeket meg is változtathatjuk. A program futását az eredeti forrásokon is képes követni. Szóval csupa-csupa hasznos szolgáltatással bír, amikkel pont olyan kényelmesen figyelhetjük programunk tevékenységét, mintha mondjuk a Borland C fejlesztő rendszerében (IDE) dolgoznánk. Turbo Debugger-nek fordításra és szerkesztésre előkészítés: minden forrást a /zi vagy /zd kapcsolóval lefordítani, formája C:\>TASM/zi filenév.asm eredmény filenév.obj vagy C:\>TASM/zi filenév.txt eredmény filenév.obj

a nevű állomány esetén: Pl. c:\> TASM/zi a.asm, eredmény a.obj a tárgykódokat a /v kapcsolóval összeszerkeszteni Pl..c:\>TLINK/v a.obj eredmény a.exe Ha ezt a két műveletet (TASM/zi és TLINK/v) elvégeztük, akkor a.exe állományunk (remélhetőleg) tartalmazza az összes szimbolikus információt, amire a nyomkövetés során szükség lehet. A dolognak két hátránya van: egyrészt.com programokba nem kerülhet nyomkövetési info, másrészt ez az adathalmaz az.exe fájl méretét igencsak megnövelheti (előfordulhat, hogy az eredeti többszöröse lesz a kimenet mérete). A legelső példaprogramot (a.asm) begépeltük és elmentettük a.asm néven, majd lefordítottuk és linkeltük, az összes debug információt belerakva. A TD a.exe parancs kiadása utáni állapotot tükrözi a fenti kép. A képernyő tetején ill. alján a már megszokott menüsor és státuszsor találhatók. A kép nagy részét elfoglaló munkaasztalon (desktop) helyezkednek el a különféle célt szolgáló ablakok. Meghívása view menü ablak CPU sora.

A legfelső ablak (CPU ablak) több részre osztható. A bal felső sarok az aktuális kód disassemblált változatát mutatja, és most éppen úgy van beállítva, hogy a forrás eredeti sorait is megjeleníti. A következő végrehajtandó sor a bal oldalon egy kis jobbra mutató háromszöggel van megjelölve (ez most a CS:0009h című sor). Emellett az egyes regiszterek és flag-ek tartalma látható. Az előző állapothoz képest megváltozott dolgokat fehér színnel jelöli meg. A jobb alsó sarok a memória egy adott területének tartalmát mutatja hexadecimális és ASCII alakban (ez az ú.n. memory dump)végül a jobb alsó sarokban a verem aktuális állapotát szemléltetjük (ss:0400 6161). A veremmutatót (azaz a verem tetejét) szintén egy jobbra mutató sötét háromszög jelzi. A kép közepén levő nagyobb ablakban a forrásban követhetjük nyomon a program futását. Itt mindig azt a fájlt látjuk, amihez az éppen végrehajtott kód tartozik. A következő végrehajtandó sort a bal oldalon kis sárga háromszög mutatja. Az alatta látható, Stack címkéjű ablak a különböző eljárás- és függvényhívások során a verembe rakott argumentumokat mutatja. A legalsó, keskeny ablak a Watches címkét viseli. Ennek megfelelően az általunk óhajtott változók, memóriaterületek aktuális értékét követhetjük itt figyelemmel. A felső sorban található menürendszeren kívül minden ablakban előhívható egy helyi menü (local menu) az <ALT>+<F10> billentyűkombinációval, ahol az aktuális ablakban (vagy részablakban) rendelkezésre álló plusz szolgáltatásokat érhetjük el. Ilyenek pl. az utasítás assemblálása, regiszter tartalmának megváltoztatása, flag törlése, megfigyelendő változó felvétele a Watches listába stb. Az ablakok között az <F6> és <Shift>+<F6> billentyűkkel mozoghatunk, míg az aktuális ablakon belül a <Tab> és a <Shift>+<Tab> kombinációkkal lépkedhetünk a részablakok között. Most áttekintjük az egyes menük funkcióit: A File menü a szokásos állományműveleteket tartalmazza, de itt kaphatunk információt a betöltött programról is.

Az Edit menü szintén a gyakori másolás-beszúrás típusú funkciókat rejti. A View menü készlete igen gazdag. Innen nézhetjük meg a változókat (Variables), a CPU ablakot, másik programmodult, tetszőleges állományt és még sok minden mást.

A Run menüben, mint neve is sejteti, a futtatással kapcsolatos tevékenységek vannak összegyűjtve, de itt állíthatók be a program futtatási (parancssoros) argumentumai is. Szinte az összes itt lévő szolgáltatáshoz tartozik valamilyen gyorsbillentyű (hot key) is. Néhány ezek közül: futtatás <F9>, újraindítás <Ctrl>+<F2>, adott sorig végrehajtás <F4>, lépésenkénti végrehajtás <F7>, CALL és INT utasítások átugrása <F8>. A Breakpoints menüvel a töréspontokat tarthatjuk karban. A töréspont egy olyan hely a kódban, ahol a program végrehajtásának valamilyen feltétel teljesülése esetén (vagy mindenképpen) meg kell szakadnia. Ilyenkor a vezérlést ismét visszakapjuk a TD képernyőjével együtt, és kedvünk szerint beavatkozhatunk a program menetébe. A Data menü az adatok, változók manipulálását segíti.

Az Options menüben találhatók a TD beállításai. Ilyenek pl. a forrás nyelve (Language), helye (Path for source), képernyővel kapcsolatos dolgok (Display options). A Window menü az ablakokkal való megjelenítésre jó, a Help menü pedig a szokásos súgót tartalmazza. A TD egyébként nemcsak Assembly, de Pascal és C nyelvű programot is képes nyomon követni, és az ezekben a nyelvekben meglevő összes adattípust is képes kezelni.