Debuggeri

Wikipedia
Loikkaa: valikkoon, hakuun

Debuggeri on tietokoneohjelma, jota käytetään muiden tietokoneohjelmien ohjelmointivirheiden jäljittämiseen ja korjaamiseen. Debuggerit ovat ohjelmoijien työkaluja, ja niitä käytetään yleisimmin silloin, kun ohjelman lähdekoodi on saatavilla. Virheen etsimistä debuggerin avulla kutsutaan yleisesti tietokonealan ihmisten keskuudessa debuggaukseksi.

Debuggeri antaa mahdollisuuden tarkastella tietokoneen ja tietokoneohjelman sisäistä tilaa ohjelman suorituksen aikana. Erilaiset debuggerit antavat tarkasteluun erilaisia mahdollisuuksia riippuen tarkasteltavasta ohjelmasta ja ohjelman ajonaikaisista oikeustasoista. Debuggerin käytön tarkoituksena on useimmiten selvittää ohjelmiston virheitä, mutta debuggeria voidaan käyttää myös ohjelmiston toiminnan yleiseen selvittämiseen ja takaisinmallinnukseen (eng. reverse engineering). Debuggeria voidaan käyttää tällöin myös laittomiin tarkoituksiin, kuten kaupallisten ohjelmistojen kopiointisuojausten murtamiseen.

Yksi debuggerin perustoiminto on asettaa ohjelmiston binäärikoodiin ns. break point, joka yksinkertaisimmillaan on kutsu, joka siirtää ohjelman suorituksen debuggeriin. Kun tietokoneohjelma sitten käynnistetään ja se saapuu break pointin kohdalle, tietokoneen suoritus siirtyy debuggeriin. Siirtohetkellä debuggeri tallentaa välittömästi ajonaikaisen suorituksen, mm. rekistereiden ja muistin tilan ja antaa ohjelmoijalle mahdollisuuden tutkia niiden sisältöä. Tiedoista on usein hyötyä ohjelman toiminnan tarkastamisessa ja virheiden selvittämisessä.

Debuggereilla voidaan jäljittää ohjelman suoritusta ja esimerkiksi paikallistaa kohta, jossa tietokoneohjelma kaatuu. Uudemmissa debuggereissa voidaan ohjelman suoritusta seurata käsky käskyltä debuggerin käyttöliittymästä sekä lukea muuttujien ja olioiden sisältöä. Muistissa olevia tietoja voidaan paitsi lukea, myös usein muokata suoraan debuggerista. Debuggerit tarjoavat usein tietokoneen ajonaikaiseen muistiin suoran näkymän. Lisäksi useimmat debuggerit tarjoavat näkymän tietokoneen rekistereihin, pinoon, konekoodiin ja tietokoneohjelman lähdekoodiin, mikäli ohjelmisto on käännetty siten, että symbolitieto lähdekoodista on saatavilla.

Kernel-moodissa toimivilla debuggereilla, kuten SoftICE, voidaan tarkkailla jopa kerneli- ja laiteajuritason suoritusta.

Debuggeri soveltuu hyvin useimpien ohjelmistojen loogisten virheiden jäljittämiseen, koska se tarjoaa ohjelmiston suoritukseen ajonaikaisen näkymän. Sen avulla ei kuitenkaan voida jäljittää kaikentyyppisiä virheitä. Ongelmallisia ovat muun muassa virheet, joissa tutkittava ohjelma toimii yhteistyössä jonkun toisen samanaikaisesti joko toisessa prosessissa tai toisessa tietokoneessa toimivan järjestelmän kanssa. Debuggeri ei voi pysäyttää toista järjestelmää tai säiettä, tai saada toista prosessia toimimaan ajan suhteen täysin samalla tavalla kuin virhetilanteen syntyessä. Reaaliaikajärjestelmät, kuten esimerkiksi auton ABS-järjestelmän ohjaus, ovat myös järjestelmiä, joiden toimintaa ei voida luotettavasti testata tavallisilla debuggereilla.

Kirjallisuutta[muokkaa | muokkaa wikitekstiä]

  • Jonathan B. Rosenberg: How Debuggers Work: Algorithms, Data Structures, and Architecture. John Wiley & Sons, 1996. ISBN 0-471-14966-7.

Katso myös[muokkaa | muokkaa wikitekstiä]

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.