Süsteemi silur. Windowsi teenuste mugav silumine. Programmeerimise definitsioon. Programmi loomise etapid

Windowsi silumistööriistade komplekt sisaldab täiustatud silumistööriistu, mis võimaldavad teil uurida sisemisi Windowsi seade. Väga Uusim versioon Osana kaasas arenduskomplekt tarkvara - Windowsi tarkvara Arenduskomplekt (SDK).

Selle komplekti tööriistu saab kasutada nii kasutaja- kui ka kernelirežiimis protsesside silumiseks.

MÄRGE. Silumistööriistad Windowsi jaoks uuendatakse ja avaldatakse üsna sageli, olenemata tööversioonidest Windowsi süsteemid, seega kontrollige uusi versioone sageli tagasi.

Silumistööriistu saab kasutada ka kasutajarežiimi ühendamiseks protsessiga ja protsessi mälu oleku uurimiseks ja/või muutmiseks. Protsessiga ühenduse loomisel on kaks võimalust.

  • Invasiivne. Kui ühenduse loomisel jooksev protsess erijuhiseid ei anta, siluri ühendamiseks silutava koodiga kasutatakse Windowsi funktsiooni DebugActiveProcess. See loob tingimused protsessimälu uurimiseks ja (või) muutmiseks, katkestuspunktide määramiseks ja muude silumisfunktsioonide täitmiseks. Windows võimaldab teil silumise peatada ilma sihtprotsessi katkestamata, kui silur on välja lülitatud ilma selle tööd katkestamata.
  • Märkamatu (mitteinvasiivne). Selle valiku korral avab silur lihtsalt protsessi OpenProcessi funktsiooni abil. See protsess ei seostu silurina teise protsessiga. See võimaldab teil uurida ja/või muuta sihtprotsessi mälu, kuid te ei saa seda määrata kontrollpunktid.

Silumistööriistade abil saate avada ka kasutajarežiimis protsessi tõmmisfailid.

Kerneli silumiseks saab kasutada kahte silurit: ühte, mis töötab käsurea aknas (Kd.exe) ja teist, millel on graafiline kasutajaliides (GUI) (Windbg.exe). Mõlemad silurid pakuvad samu käske, seega on valik täielikult isiklike eelistuste küsimus. Need tööriistad võimaldavad teil teostada kolme tüüpi kerneli silumist:

  • Avatud krahhi dump fail, mis on loodud süsteemi krahhi tagajärjel.
  • Looge ühendus reaalajas töötava süsteemiga ja uurige süsteemi olekut (või seadke katkestuspunktid, kui silute seadme draiveri koodi). Selle toimingu jaoks on vaja kahte arvutit – sihtmärki ja juhtarvutit. Sihtarvuti sisaldab süsteemi, mida silutakse, ja peaarvuti sisaldab süsteemi, milles silur töötab. Sihtsüsteemi saab ühendada põhisüsteemiga läbi null modemi kaabel, IEEE 1394 või arenduskaabel USB-kaabel 2.0. Sihtsüsteem tuleb käivitada silumisrežiimis (kas vajutades alglaadimise ajal klahvi F8 ja valides silumisrežiimi või konfigureerides süsteemi käivitama silumisrežiimi, kasutades Bcdedit või Msconfig.exe). Ühenduse saab luua ka nimega toru kaudu, mida kasutatakse silumisel läbi virtuaalmasina (mis on loodud selliste tööriistadega nagu Hyper-V, Virtual PC või VMWare), avades külalisoperatsioonisüsteemi jadaport nimega kanaliseadmena.
  • Windowsi süsteemid võimaldavad teil ka ühenduse luua kohalik süsteem ja uurige tema seisundit. Seda nimetatakse "kohaliku kerneli silumiseks". Kerneli lokaalse silumise alustamiseks WinDbg siluri abil avage menüü Fail, valige Kerneli silumine, klõpsake vahekaarti Kohalik ja seejärel klõpsake nuppu OK. Sihtsüsteem peab olema käivitatud silumisrežiimis. Sel juhul kuvatava ekraani näide on näidatud joonisel fig. 1.6. Mõned kerneli silurikäsud ei tööta kohalikus kerneli silumisrežiimis (näiteks käsk .dump, mis on loodud mälutõmmise loomiseks, kuigi sellise tõmmise saab luua allpool käsitletava LiveKd tööriista abil).

Kohalik kerneli silumine

Sisu kuvamiseks sisemine struktuur andmeid, sealhulgas teavet lõimede, protsesside, sisend-/väljunditaotluste pakettide ja mäluhalduse teabe kohta, saate pärast kerneli silumisrežiimiga ühenduse loomist kasutada üht paljudest silurilaiendikäskudest (käsud, mis algavad märgiga "!").

Suurepärane abivahend võrdlusmaterjal Kasutada saab faili Debugger.chm, mis asub WinDbg siluri installikaustas. See pakub dokumentatsiooni kõigile funktsionaalsust ja kerneli silurilaiendid. Lisaks saab käsk dt (kuva tüüp) vormindada üle 1000 tuumastruktuuri, kuna Windowsi kerneli sümbolifailid sisaldavad tüübiteavet, mida silur saab kasutada struktuuride vormindamiseks.

Katse: kerneli struktuuride tüübiteabe kuvamine.

Kerneli struktuuride loetlemiseks, mille tüübiteave sisaldub kerneli sümbolites, tippige kerneli silurisse dt nt!_*. Osalise näidisväljund näeb välja selline:

lkd> dt nt!_*

nt!_IMAGE_NT_HEADERS

nt!_IMAGE_FILE_HEADER

nt!_IMAGE_OPTIONAL_HEADER

nt!_IMAGE_NT_HEADERS

nt!_LARGE_INTEGER

Samuti saate kasutada käsku dt konkreetsete struktuuride otsimiseks, kasutades käsu metamärki. Näiteks kui otsite katkestusobjekti struktuuri nime, peate tippima käsu dt nt!_*interrupt*:

lkd> dt nt!_*katkestus*

nt!_KINTERRUPT_MODE

nt!_KINTERRUPT_POLARITY

nt!_UNEXPECTED_INTERRUPT

Seejärel, nagu on näidatud järgmises näites, saab käsu dt kasutada konkreetse struktuuri vormindamiseks:

lkd> dt nt!_kinterrupt

0x000 Tüüp: Int2B

0x002 suurus: Int2B

0x018 ServiceRoutine: Ptr64 allkirjastamata tähemärk

0x020 MessageServiceRoutine: Ptr64 allkirjastamata tähemärk

0x028 MessageIndex: Uint4B

0x030 ServiceContext: Ptr64 tühine

0x038 SpinLock: Uint8B

0x040 TickCount: Uint4B

0x048 ActualLock: Ptr64 Uint8B

0x050 lähetamise aadress: Ptr64 tühine

0x058 vektor: Uint4B

0x05c Irql: UChar

0x05d SynchronizeIrql: UChar

0x05e FloatingSave: UChar

0x05f Ühendatud: UChar

0x060 number: Uint4B

0x064 ShareVector: UChar

0x065 Pad: Char

0x068 režiim: _KINTERRUPT_MODE

0x06c Polaarsus: _KINTERRUPT_POLARITY

0x070 ServiceCount: Uint4B

0x074 DispatchCount: Uint4B

0x078 Rsvd1: Uint8B

0x080 TrapFrame: Ptr64_KTRAP_FRAME

0x088 Reserveeritud: Ptr64 tühine

0x090 väljastuskood: Uint4B

Tuleb märkida, et käsu dt täitmisel alamstruktuure (struktuuride sees olevaid struktuure) vaikimisi ei kuvata. Alamstruktuuride rekursiooni tegemiseks peate kasutama lülitit –r. Näiteks kasutage seda klahvi kerneli katkestusobjekti kuvamiseks, mis näitab väljale InterruptListEntry salvestatud struktuuri _LIST_ENTRY vormingut:

lkd> dt nt!_kinterrupt -r

0x000 Tüüp: Int2B

0x002 suurus: Int2B

0x008 InterruptListEntry: _LIST_ENTRY

0x000 Flink: Ptr64 _LIST_ENTRY

0x008 Vilkumine: Ptr64 _LIST_ENTRY

0x000 Flink: Ptr64 _LIST_ENTRY

0x008 Vilkumine: Ptr64 _LIST_ENTRY

Windowsi silumistööriistade abifail selgitab ka, kuidas konfigureerida ja kasutada kerneli silujaid. Lisateavet otse seadme draiveri kirjutajatele suunatud kerneli silurite kasutamise kohta leiate selle dokumentatsioonist Windows komplekt Juhi komplekt.

Pärast tarkvara moodulid on edukalt tõlgitud, paigutatud kindlatele aadressidele ja omavahel ühendatud, saate programmi silumiseks kasutada mõnda järgmistest meetoditest:

  • vooluringisisene emulaator
  • sisseehitatud tarkvara silur
  • väline tarkvara silur
  • seadme silumine mällu salvestatud programmidega binaarne kood programmid

Vooluahelasisene emulaator koos ekraaniga keelemuutujad programmeerimine arvutiekraanil pakub olulist abi programmide silumisel otse arendatavas seadmes. See silumismeetod pakub kõige mugavamat keskkonda, kui saate programmi peatada otse silutavas seadmes, juhtida programmi täitmist otse programmi lähtetekstist, väliste portide olekut ja sisemisi muutujaid, mis mõlemad sisalduvad kiibis. ja deklareeriti kirjutamise ajal lähtetekst programmid. Pange tähele, et programmi silumisel vooluringisisese emulaatori abil peate kaasama objekti moodulid sümboolne teave. Programmide silumiseks vajalikud seadmed on näidatud joonisel 1.


Joonis 1. Mikrokontrollerite tarkvara silumissüsteemi näide

Veel hiljuti oli vooluringisisene emulaator mikrokontrolleri asemel eraldiseisev seade, mis ühendati arendatava plaadiga. Kaasaegsed mikrokontrollerid sisaldavad sageli sisseehitatud vooluringi emulaatorit. Samal ajal on arvutiga suhtlemiseks kõige mugavam liides JTAG-liides, kuigi mõned kiibitootjad pakuvad oma liidest.

Integreeritud programmeerimiskeskkonna kasutamisel on see ette nähtud kasutajasõbralik liides, mis võimaldab arendatavat programmi hõlpsalt siluda. Praeguseks on de facto standardiks saanud Visual C shelliga sarnane liides.Näide välimus Selline tarkvara kest on näidatud joonisel 2.



Joonis 2. Integreeritud tarkvara silumissüsteemi siluri välimuse näide

Sisseehitatud tarkvara silur, mis on osa integreeritud programmeerimiskeskkonnast, ei võimalda juhtida mikrokontrolleri väliste jalgadega ühendatud seadmete tööd, küll aga vähendab oluliselt mikrokontrollerite programmide kirjutamiseks vajaliku silumiskompleksi maksumust. Signaalid, mida seade peaks mikrokontrollerile saatma, määrab programmeerija ise (mis tähendab, et juba selles etapis võib esineda tõrkeid õige arusaam seadme töö). Nende signaalide käsitsi sisestamine aeglustab oluliselt tarkvara silumisprotsessi.

Väline tarkvara silur. Mõnel juhul ei kasutata integreeritud programmeerimiskeskkonda, vaid valitud programmeerimiskeelest eraldi tõlkijat. Sel juhul saate kasutada mis tahes programmi, mis emuleerib valitud tüüpi mikrokontrollerit. Kuna erinevate tõlkijate objektivormingud on üksteisest mõnevõrra erinevad, kasutatakse sisendfailina binaar- või kuueteistkümnendvormingus laadimismoodulit. Nendes vormingutes puudub silumisteave täielikult, seega saab sellistes programmides silumist teha ainult sisseehitatud lahtimonteerija ja prinditud (või teises aknas avatud) programmiloendi abil. Loomulikult on see veelgi ebamugavam silumismeetod võrreldes integreeritud programmeerimiskeskkonna ja vooluringisisese emulaatori kasutamisega.

Mikroskeemide programmeerimine. Mis tahes programmi silumismeetodi kasutamisel kirjutatakse valmis laadimismoodul sisemälu mikrokontrolleri programmid programmeerija abil (mis sisaldub paljudes kaasaegsetes mikrokontrolleri kiipides). Pärast seda testitakse väljatöötatud seadet põhjalikult, et tuvastada vead selle seadme vooluringis ja programmis. Alles pärast selle testi edukat läbimist loetakse programm täielikult kirjutatud ja silutuks.

Kirjutamisel piisab lihtsad programmid mõnikord kasutatakse programmide silumiseks ainult seda viimane etapp testimine. Vigade tuvastamine, otsimine ja kõrvaldamine ainult seda meetodit kasutades on aga väga töömahukas! See on sama, kui katsetada seadmeid ilma instrumente kasutamata!

See dokumentatsioon on arhiveeritud ja seda enam ei hooldata.

WinPE: rakenduste silumine

Rakenduste ja Windows PE kerneli silumiseks saate kasutada Windowsi silujaid, nagu Ntsd.exe, Cdb.exe, Windbg.exe ja toetavaid tööriistu. Silumistööriistad sisalduvad Windows 10 SDK-s. Silumistööriistade kättesaadavaks tegemiseks Windows PE-ga arvutis peate need kopeerima kohalik ketas või jagada.

Windows PE kaugsilumiseks peate võib-olla keelama oma arvuti sisseehitatud tulemüüri.

wpeutil tulemüüri keelamine

Silumine kasutajarežiimis

Kasutajarežiimis silumise teostamiseks on lihtsaim viis käivitada protsessisisene server arvutis, kus töötab Windows PE ja luua sellega ühendus mõne teise arvuti siluri abil. Protsessiserver sisaldub Windows 10 SDK silumistööriistades.

Protsessisisese serveri käitamine kasutajarežiimis

    Kopeerige Windowsi silumisprotsessiserveri tööriist dbgsrv.exe Windows 10 SDK silumistööriistade kaustast (nt C \Windows Kits\10.0\Debuggers\x64 failid \Program (x86) arvutisse, kus töötab Windows PE.

    IN käsurida Windows PE keelab tulemüüri.

    wpeutil tulemüüri keelamine

    Käivitage Windowsi protsessisisene silumisserver, määrates arvutiga ühendamise meetodi, näiteks TCP-pordi:

    dbgsrv.exe –t tcp:port=1234

    Protsessiserveri aktiveerimine (Windowsi silurid).

    Peal kaugarvuti Kasutage protsessisisest serverit Windows PE-s protsesside ühendamiseks või käitamiseks sihtarvutis.

    windbg -premote tcp:server=Server, port=1234

    Lisateavet leiate teemast Intelligentse kliendi aktiveerimine (Windowsi silurid).

Siluri saate käivitada ka otse arvutis, kus töötab Windows PE. Kuid selleks peate konfigureerima sümboli ja lähteteed iga kord, kui selle Windows PE arvuti taaskäivitate. Soovitame siluda arvutist, mis töötab täis Windowsi versioon nagu selles protseduuris kirjeldatud.

Seda protseduuri saab kasutada, kui soovite startnet.cmd-st või setup.exe-st mööda minna ja minna käsurealt otse silumise juurde. See välistab täielikult lähtestamise, sealhulgas installimise, ega käivita selliseid käske nagu Wpeinit.exe. Protseduur tuleb läbi viia võrgus ühendatud operatsioonisüsteemiga.

Enne lähtestamist lubage kasutajarežiimi silumine

    Kustutage fail winpeshl.ini, kui see on olemas. Kui faili winpeshl.ini pole olemas, on kasutajarežiimi silumine vaikimisi saadaval.

    Laadimise ajal hoidke CTRL-klahv kuni kuvatakse käsuviip. Ekraanile ilmub käsurida.

    Alustage silumist.

Silumine kerneli režiimis

Kerneli režiimi silumiseks tuleb see enne süsteemi käivitamist lubada. Aon kerneli režiimi silumissuvand, mille saab lubada käsurea tööriistaga bcdedit.exe, et muuta alglaadimiskonfiguratsiooni andmesalvet. Kerneli režiimi silumine on võimalik ainult bcdedit.exe abil. Bcdedit.exe asub Windowsi jaotis kataloogis \Windows\System32.

Siluri vaikesuvandid näevad välja järgmised:

Identifier (dbgsettings) silumistüüp Jadadebugport 1 baudikiirus 115200

Enne ISO-piltide loomist jaoks virtuaalsed masinad, lubage kernel alglaadimise konfiguratsiooniandmete kirjetega.

Lisateavet alglaadimiskonfiguratsiooni vaikesalve (default.bcd) muutmise kohta leiate jaotisest Alglaadimiskonfiguratsiooni andmesalve muutmine Bcdediti abil.

Luba kerneli režiimi silumine

    Otsige üles alglaadimiskonfiguratsiooni andmesalv, mis asub failis nimega bcd. See fail asub Windows PE-kujutist sisaldava meediumi juurtes alglaadimiskataloogis.

    Sisestage käsureale järgmine käsk bcdedit, et määrata silumiseks kasutatava alglaadimiskonfiguratsiooni andmesalve silumislipp.


Sissejuhatus 2

Programmeerimise definitsioon. Programmi loomise etapid 3

Programmi silumine 6

Ülesanne 2 ja 3 9

Ülesanne 4 ja 5 12

Järeldus 14

Kasutatud kirjanduse loetelu 15

Sissejuhatus

Arvutiseadmed ja arvutitehnoloogia on inimelus kindlalt juurdunud. Teaduse ja tehnoloogia areng on võimatu ilma arvutusprotsesside automatiseerimiseta. Just arvutusprotsesside automatiseerimise vajadus sai programmeerimise arendamise algtõuke.

Traditsiooniline programmeerimistehnoloogia kujunes välja koidikul arvutitehnoloogia, kui kasutajate käsutuses olid piiratud arvutiressursid ja programmi arendaja oli samal ajal selle peamine kasutaja. Nendes tingimustes pöörati põhitähelepanu tõhusate programmide hankimisele arvutiressursside optimaalse kasutamise mõttes.

Tänapäeval, kui arvutirakenduste ulatus on tohutult laienenud, tegelevad programmide arenduse ja käitamisega reeglina erinevad inimesed. Seetõttu tõusevad efektiivsuse kõrval esile ka teised programmide olulised omadused nagu arusaadavus, hea dokumentatsioon, töökindlus, paindlikkus, hooldamise lihtsus jne. Selliste omadustega programmide väljatöötamise probleem on seletatav programmeerimisprotsessi keerukusega.

Programmi loomiseks on vaja järgida teatud põhimõtteid ja uusi programmeerimistehnoloogiaid.

Tänapäeval mängib arvutitehnoloogia pideva arengu tõttu programmeerimine oluline roll inimese elus.

Programmeerimise definitsioon. Programmi loomise etapid

Selleks, et arvuti saaks probleemi lahendada, peab ta saama inimeselt juhised selle lahendamiseks, sellise probleemi lahendamisele suunatud arvuti juhiste kogumit nimetatakse programmiks.

Programmeerimine on arvutiprogrammide või tarkvara loomise protsess programmeerimiskeeli kasutades. Programmeerimine ühendab põhiteaduste elemente, nagu matemaatika, kõrgem matemaatika ja inseneriteadus.

Programmeerimiskeel on formaalne märgisüsteem, mis on loodud programmide kirjutamiseks. Alates esimeste programmeeritavate masinate loomisest on inimkond välja pakkunud enam kui kaheksa ja pool tuhat programmeerimiskeelt. Igal aastal täiendatakse nende arvu uutega. Oskab kasutada ainult mõnda keelt väike arv oma arendajad, teised saavad teada miljonitele inimestele. Professionaalsed programmeerijad kasutavad mõnikord oma töös rohkem kui tosinat erinevat programmeerimiskeelt.

Mis tahes programmi loomise protsessis saab eristada järgmist etappide jada:

1. etapp. Probleemi avaldus: selles etapis on kaasatud isik, kes mõistab hästi probleemi teemavaldkonda. Ta peab selgelt määratlema eesmärgi, eesmärgid, sõnaliselt kirjeldama probleemi sisu ja pakkuma välja üldise lähenemisviisi selle lahendamiseks, analüüsima kõigi ülesandes kasutatud suuruste olemust ja olemust ning määrama selle lahendamise tingimused. Teisisõnu, selles etapis kujuneb probleemi tingimus . See etapp on väga oluline, kuna loodud programmi rakendamise edukus sõltub peamiselt eesmärkide ja nõuete õigest mõistmisest.

2. etapp. Probleemi analüüs ja modelleerimine: selle etapi eesmärk on matemaatiline mudel või matemaatiline formuleering. Selles etapis tehakse järgmised punktid

1) Määratakse kindlaks lähteandmed ja nende tüübid.

2) Kirjeldatakse ülesande lahendust analüütiliste sõltuvuste (võrrandite, funktsioonide) kujul.

3) Määratakse lõplikud andmed ja nende liigid.

Nii moodustub teatud täpsusega, eelduste ja piirangutega matemaatiline mudel. Sel juhul võib olenevalt lahendatava ülesande spetsiifikast kasutada erinevaid matemaatika ja teiste erialade lõike.

3. etapp. Ülesande algoritmiseerimine ja plokkskeemi koostamine: teostatakse programmi matemaatilise kirjelduse alusel. Peal selles etapisülesande lahendamise algoritm koostatakse vastavalt valitud lahendusmeetodiga määratud toimingutele. Andmetöötlusprotsess jagatakse eraldi, suhteliselt sõltumatuteks plokkideks ja määratakse plokkide täitmise järjekord. Algoritmi plokkskeem on väljatöötamisel.

4. etapp. Programmeerimine: selles etapis tõlgitakse probleemi lahendamise algoritm konkreetsesse programmeerimiskeelde. Tavaliselt kasutatakse programmeerimiseks kõrgetasemelisi keeli, seega nõuab kompileeritud programm tõlkimist masinkeelde. Pärast sellist tõlget käivitatakse vastav masinaprogramm.

5. etapp. Programmi silumine ja testimine: koosneb programmi süntaktiliste ja loogiliste vigade leidmisest ja kõrvaldamisest.

Programmi süntaktilise kontrolli käigus tuvastab tõlkija konstruktsioonid ja sümbolite kombinatsioonid, mis on vastuvõetamatud nende konstrueerimise või kirjutamise reeglite seisukohalt, mis on antud keeles vastu võetud. Arvuti väljastab programmeerijale veateateid ning selliste teadete tüüp ja vorm sõltub kasutatava tõlgi keele tüübist ja versioonist. Pärast süntaksivigade kõrvaldamist kontrollitakse programmi loogikat selle täitmisel konkreetsete lähteandmetega.

6. etapp. Silumisprogrammi täitmine ja tulemuste analüüs: pärast programmi silumist saab seda kasutada rakenduse probleemi lahendamiseks. Sel juhul lahendatakse probleem tavaliselt arvutis mitu korda erinevate lähteandmete komplektide jaoks. Saadud tulemusi tõlgendab ja analüüsib ülesande püstitanud spetsialist või kasutaja.

Programmi silumine

Vaatamata sellele, et programmi loomine toimub mitmes etapis, on kõige olulisem ja aeganõudvam programmi silumise ja testimise etapp. Just selles etapis kõrvaldatakse loodud programmis kõik loogilised ja sünteetilised vead.

Silumine on tegevus, mille eesmärk on programmis esinevate vigade tuvastamine ja parandamine.

Testimine on programmi käivitamine teatud andmehulkadel, mille rakendamise tulemus on eelnevalt teada või nende programmide käitumisreeglid on teada. Seega saab silumist kujutada kolme protsessi korduva kordamisena: testimine, mille tulemusena saab määrata vea olemasolu, vea asukoha otsimine programmis ning programmi ja dokumentatsiooni redigeerimine eesmärgiga kõrvaldada tuvastatud viga. Seega saab kõike ülaltoodut esitada järgmise valemiga:

Silumine = testimine + vigade otsimine + redigeerimine.

Silumise edukuse määrab suuresti testimise ratsionaalne korraldus. Silumise käigus leitakse ja kõrvaldatakse vead, mille olemasolu tuvastatakse testimise käigus. Nagu juba märgitud, ei saa testimine tõestada programmi õigsust, parimal juhul võib see näidata vea olemasolu. Seetõttu kerkib esile kaks probleemi. Esiteks: valmistage ette selline testide komplekt, et võimaluse korral tuvastada suurem arv vead. Mida kauem aga testimisprotsess jätkub, seda suuremaks läheb programmi maksumus. Siit ka teine ​​ülesanne: teha kindlaks silumise lõpp. Märk, et silumine on lõpule viidud, on programmi kaudu läbitud testide täielik katvus ja suhteliselt harva esinevad vead testitavas programmis testimisprotsessi viimases etapis.

Silumiseks on erinevaid lähenemisviise ja vahendeid; peamiseks tööriistaks on sisseehitatud tarkvara silujad, mis sisaldavad kasutajaliidest programmi samm-sammult täitmiseks: lause lause haaval, funktsioon funktsiooni haaval, mõnel real peatustega lähtekood või kui teatud tingimus on saavutatud.

Lisaks sisseehitatud tarkvarasilurite kasutamisele on programmi silumiseks ka teisi meetodeid: ahelasisese emulaatori kasutamine, silumine väliste tarkvarasilurite abil ja silumisseade, mille programmi binaarkood on salvestatud programmimällu.

Arvutiekraanil kuvatavate programmeerimiskeele muutujatega vooluringisisene emulaator pakub olulist abi programmide silumisel otse arendatavas seadmes. See silumismeetod pakub kõige mugavamat keskkonda, kui saate programmi peatada otse silutavas seadmes, juhtida programmi täitmist otse programmi lähtetekstist, väliste portide olekut ja sisemisi muutujaid, mis mõlemad sisalduvad kiibis. ja deklareeriti programmi lähteteksti kirjutamisel. Kuni viimase ajani oli vooluringisisene emulaator eraldi seade, mis oli ühendatud arendatava plaadiga.

Sisseehitatud tarkvara silur, mis on osa integreeritud programmeerimiskeskkonnast, lihtsustab oluliselt programmi silumise protsessi. Kuid samal ajal aeglustub see oluliselt.

Väline tarkvara silur. Mõnel juhul ei kasutata integreeritud programmeerimiskeskkonda, vaid valitud programmeerimiskeelest eraldi tõlkijat. Kuna erinevate tõlkijate objektivormingud on üksteisest mõnevõrra erinevad, kasutatakse sisendfailina binaarvormingus laadimismoodulit.

Programmide silumine seisneb programmi ja riistvara õige töö kontrollimises. Programm, mis ei sisalda süntaksivigu, võib aga sisaldada loogikavigu, mis takistavad programmil ettenähtud funktsioone täitmast. Loogikavead võivad olla seotud programmi algoritmi või mikrokontrolleri portidega ühendatud seadmete töö valesti mõistmisega.

Integreeritud programmeerimiskeskkonda sisseehitatud silur võimaldab siluda neid programmikoodi jaotisi, mis ei sõltu mikrokontrolleri kiibi koosseisu mittekuuluvate seadmete tööst. Tavaliselt viitab see matemaatiliste avaldiste hindamisele või andmete esitusvormingute teisendamisele. Programmeerimine on " silumine" programmid, ehk siis tehtud vigade tuvastamine ja parandamine Programmeerimine Peaasi silumine ...

  • Pascal Silumine programmid

    Abstraktne >> Arvutiteadus

    Loogikaoperaatorid ja silmusoperaatorid. Silumine programmid. Kui lause lühendatud vorm on... if. Keskkond tähendab programmeerimine Sest silumine programmid Borland Pascal keskkond... mitu sisseehitatud tööriistad silumine programmid. Mõnega neist...

  • Programm ettevõtte töötajate töötasude ja maksude arvutamiseks

    Abstraktne >> Majandus

    Tarkvara: probleemipüstituse uurimine; programmeerimine Ja silumine programmid; kirjeldus testjuhtum; koos... arvutiaeg kl silumine programmid määratakse tegeliku aja korrutamisega silumine programmid selle hinna eest...

  • Täitmine ja silumine programmid integreeritud keskkonnas programmeerimine Turbo Pascal (MS-Dos)

    Laboratoorsed tööd >> Arvutiteadus, programmeerimine

    Integreeritud keskkondade praktiline kasutamine programmeerimine täitmise eesmärgil ja silumine programmid Pascali keeles. TEOREETILINE... TEAVE Süsteemi põhikomponendid programmeerimine Turbo...

  • 2. Aktiivsed silumistööriistad

    2.1. Aktiivsete silumistööriistade arhitektuur

    Üldiselt koosneb ristsiluja kahest põhimoodulist: haldurist tööriistaplatvormil ja silumisagent sihtpoolel. Juhataja tagab kasutajaliides, see tähendab käskude vastuvõtmiseks, töötlemiseks ja sihtpoolele saatmiseks, samuti teabe vastuvõtmiseks, töötlemiseks ja väljastamiseks agentilt, kes töötab otseselt silutava süsteemiga. Silumisagendi võimalused sõltuvad süsteemi arhitektuuri funktsioonidest, nimelt:

    Kas süsteemis on sisseehitatud silumisriistad (sel juhul peab agent ainult vastavad funktsioonid välja kutsuma ja tulemused haldurile saatma);

    Milliseid võimalusi see annab käsitlejate loomiseks (tekkivate sündmuste juhtimiseks võib agent vajada oma töötlejat);

    Milliseid funktsioonikõnesid on agentil lubatud teha?

    Lisaks peab silumisagent toetama võimalust saada ja edastada teavet silutavate programmide koodi sisseehitatud pseudoagentidelt. Silumisagent võib koosneda mitmest moodulist, näiteks üks kogub andmeid, teine ​​teostab filtreerimist ja kolmas saadab andmed haldurile.

    Aktiivse ristsiluja üldine struktuur on näidatud joonisel fig. 2.

    Riis. 2. Aktiivne ristsiluja

    Vaatame haldur-agendi protokolli, kasutades VxGDB silurit (Wind River Systems, sihtsüsteem- VxWorks). See protokoll põhineb RPC-l (Remote Procedure Call). Halduri taotlusi saab liigitada järgmiselt:

    See hõlmab mooduli laadimise taotlust, teabe hankimise taotlust alglaadimisfail ja taotlus sümboli kohta teabe saamiseks.

    Need on taotlused ülesande käivitamiseks, peatamiseks ja kustutamiseks, lisamiseks ja eemaldamiseks jooksev ülesanne, katkestuspunkti määramiseks ja eemaldamiseks, peatatud ülesande täitmise jätkamiseks.

    3. ptrace taotlused

    Silumisagent emuleerib funktsiooni ptrace ja edastab sellele vastavad lugemis- ja kirjutamispäringud.

    Raamatust Reaalajas süsteemide silumine [arvustus] autor Kostjukhin K A

    2.1. Aktiivsete silumistööriistade arhitektuur Üldiselt koosneb ristsiluja kahest põhimoodulist: tööriistaplatvormi haldurist ja sihtpoolel olevast silumisagendist. Halduri eesmärk on pakkuda kasutajaliidest, st saada oma käske

    Raamatust Arvutiteadus ja infotehnoloogia: loengukonspektid autor Tsvetkova A V

    4. Silumise registrid See on väga huvitav seltskond riistvara silumiseks mõeldud registrid. Riistvara silumistööriistad ilmusid esmakordselt i486 mikroprotsessoris. Riistvaras sisaldab mikroprotsessor kaheksa silumisregistrit, kuid tegelikkuses ainult

    Raamatust Arvutiteadus ja infotehnoloogia autor Tsvetkova A V

    46. ​​Silumisregistrid See on väga huvitav registrite rühm, mis on loodud riistvara silumiseks. Riistvara silumistööriistad ilmusid esmakordselt i486 mikroprotsessoris. Riistvaras sisaldab mikroprotsessor kaheksa silumisregistrit, kuid tegelikkuses ainult

    Raamatust Office 2007. Multimeedia kursus autor Medinov Oleg

    Aktiivse lahtri vormindamine Saate kohandada andmete esitust mis tahes lahtris või vahemikus oma äranägemise järgi, st vormindada aktiivset lahtrit või valitud vahemikku. Minema kuhugi see režiim, käivitage käsk kontekstimenüü Lahtri vorming

    Raamatust Windows Script Host for Windows 2000/XP autor Popov Andrei Vladimirovitš

    Lisa 3 Tööriistad skriptide arendamiseks ja silumiseks Põhimõtteliselt saab skripte luua Windowsi märkmik või sisse tekstiredaktorid faili kestad nagu Kaugjuht ja siluda neid, kuvades ekraanil muutuvaid väärtusi skripti õigetes kohtades (meetod Echo objekt

    Raamatust Application Development in Linuxi keskkond. Teine väljaanne autor Johnson Michael K.

    7. peatükk Mälu silumise tööriistad Kuigi C on kahtlemata standardkeel programmeerimine sisse Linuxi süsteemid, sellel on mitmeid funktsioone, mis takistavad programmeerijatel kirjutada koodi, mis ei sisalda peeneid vigu, mis on hiljem väga

    Raamatust VBA for Dummies autor Steve Cummings

    Klahvikombinatsioonid silumiseks Tabelis. Tabelis 9.1 on loetletud silumisel kasutatavad klahvikombinatsioonid. Ma käsitlen neid kõiki üksikasjalikult hiljem selles peatükis Koodi täitmine ridade kaupa (samm-sammult) Koodi rida-realt täitmine ilma rida-realt täitmiseta

    Raamatust Programming PDAs and Smartphones on the .NET Compact Framework autor Klimov Aleksander P.

    Programmid rakenduste silumiseks Selles peatükis käsitletakse rakenduste edukaks programmeerimiseks vajalikke utiliite mobiilseadmed. Võib-olla on neist utiliitidest kõige olulisem Device Emulator tarkvara emulaator. Lisaks koostis Visual Studio 2005 kaasa arvatud

    Linuxi raamatust: Täielik juhend autor Kolisnitšenko Deniss Nikolajevitš

    21.1.7. Silumisvalikud Kui soovite oma programmi silumiseks kasutada silurit, näiteks gdb, määrake kompilaatori käivitamisel suvand -g. See suvand asetatakse kompileeritud faili silumisinfo, mille tulemusena suureneb faili suurus oluliselt. Sellepärast

    Raamatust Linuxi programmeerimine näidetega autor Robbins Arnold

    15.2. Silumiseks kompileerimine Lähtekoodi siluri kasutamiseks siluri käivitatav fail tuleb kompileerida kompilaatori võtmega -g. See suvand paneb kompilaatori objektikoodi lisama silumisidentifikaatorid; see on

    Raamatust Programming for Linux. Professionaalne lähenemine autor Mitchell Mark

    15.4. Silumiseks programmeerimine Lähtekoodi silumise hõlbustamiseks on saadaval palju meetodeid, alates lihtsast kuni keerukani. Selles jaotises vaatleme mitmeid

    Raamatust UNIX: Development võrgurakendused autor Stevens William Richard

    15.7. Silumisreeglid Silumine ei ole must maagia. Selle põhimõtteid ja tehnikaid saab õppida ja järjepidevalt rakendada igaüks. Selleks soovitame David J. Agansi raamatut Silumine (ISBN: 0-8144-7168-4). Raamatul on veebisait, mis võtab kokku reeglid ja

    Raamatust PascalABC.NET keele kirjeldus autor RuBoardi meeskond

    A.2.6. Silumistööriistade valimine Vaatlesime nelja erinevat, üksteisega mitteühilduvat tööriista valede kasutusjuhtude diagnoosimiseks. dünaamiline mälu. Ükski tööriist ei leia kõiki vigu, kuid see on parem kui täielik puudumine

    Raamatust Ideaalne programmeerija. Kuidas saada tarkvaraarenduse professionaaliks autor Martin Robert S.

    Lisa B Silumistehnikad See lisa sisaldab mõningaid juhiseid ja tehnikaid võrgurakenduste silumiseks. Ükski ülaltoodud meetoditest pole kõigi jaoks imerohi võimalikud probleemid, aga on palju tööriistu, millega

    Autori raamatust

    Silumisjaotis Programmeerimise tegumiraamatu versioonis 4.9 on ilmunud tööriistad, mis võimaldavad kuvada silumisinfot otse tegumiraamatu aknas ( spetsiaalne sektsioon silumine). Vajadus sellise järele täiendavaid vahendeid tekib eelkõige töötamisel

    Autori raamatust

    Silumisaeg Mingil teadmata põhjusel ei pea arendajad silumist arendusprotsessi loomulikuks osaks. Neile tundub, et silumine on sarnane füsioloogilise vajadusega: nad teevad seda lihtsalt sellepärast, et see on vältimatu. Silumisaeg aga maksab ettevõttele täpselt