Movatterモバイル変換


[0]ホーム

URL:


Siirry sisältöön
Wikipedia
Haku

Debuggeri

Wikipediasta
Esimerkki debuggerista.

Debuggeri elivirheenjäljitin ontietokoneohjelma, jota käytetään muiden tietokoneohjelmienohjelmointivirheiden jäljittämiseen ja korjaamiseen. Virheenjäljittäjät ovatohjelmoijien työkaluja, ja niitä käytetään yleisimmin silloin, kun ohjelmanlähdekoodi on saatavilla. Virheen etsimistä kutsutaan yleisestidebuggaukseksi. Nykyisin debuggeri on usein integroitu osaksiohjelmointiympäristöä.

Kuvaus

[muokkaa |muokkaa wikitekstiä]

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

Usein debuggeria käytettäessä tutkittava ohjelma käännetään erityisillä asetuksilla joilla siihen lisätään tietoa virheiden jäljitystä varten. Näin debuggeri tietää minkä nimisestälähdekoodin tiedostosta ja jopa miltä riviltä ajettava koodi on peräisin. Eräillä alustoilla ohjelma käännetään oletuksena debug-tiedon kanssa ja julkaistavasta versiosta poistetaan (strip) ylimääräiset jäljitystiedot.

Yksi virheenjäljittäjän perustoiminto on asettaa ohjelmiston ohjelmakoodiin kohta, jossa ohjelman suoritus pysäytetään (breakpoint) ja suoritus siirtyy virheenjäljittäjään. Siirtohetkellä virheenjäljittäjä tallentaa välittömästi ajonaikaisen suorituksen, muun muassarekistereiden ja muistin tilan ja antaa ohjelmoijalle mahdollisuuden tutkia niiden sisältöä. Jos ohjelmaan on käännettäessä lisätty lisätietoa virheenjäljitystä varten voidaan muuttujia tarkastella niiden nimillä. Tiedoista on usein hyötyä ohjelman toiminnan tarkastamisessa ja virheiden selvittämisessä.

Virheenjäljittäjillä voidaan jäljittää ohjelman suoritusta ja esimerkiksi paikallistaa kohta, jossa tietokoneohjelmakaatuu. Virheenjäljittäjissä 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 virheenjäljittäjästä. Virheenjäljittäjät tarjoavat usein tietokoneen ajonaikaiseen muistiin suoran näkymän. Lisäksi useimmat virheenjäljittäjät 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. Useat debuggerit osaavat lukea ohjelman kaatumisen yhteydessä tallennettaviacoredump-tiedostoja virheen jäljittämistä varten.

Käyttöjärjestelmän ytimen kanssa toimivilla debuggereilla, kutenSoftICE, voidaan tarkkaillakerneli- jalaiteajuritason suoritusta.Linux-ydin tukee kahta tapaa,kdb jakgdb, joista jälkimmäinen on etänä kahdella tietokoneella suoritettava.[1]

Virheenjäljittäjä 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. Virheenjäljittäjä 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 autonABS-järjestelmän ohjaus, ovat myös järjestelmiä, joiden toimintaa ei voida luotettavasti testata tavallisilla virheenjäljittäjillä.

Katso myös

[muokkaa |muokkaa wikitekstiä]

Lähteet

[muokkaa |muokkaa wikitekstiä]
  1. Chapter 1. Introduction kernel.org. Viitattu 25.11.2017.

Kirjallisuutta

[muokkaa |muokkaa wikitekstiä]
  • Jonathan B. Rosenberg: How Debuggers Work: Algorithms, Data Structures, and Architecture. John Wiley & Sons, 1996. ISBN 0-471-14966-7 (englanniksi)
  • Norman Matloff & Peter Jay Salzman: The Art of Debugging with GDB, DDD, and Eclipse. No Starch Press, 2008. ISBN 978-1-59327-174-9 (englanniksi)

Aiheesta muualla

[muokkaa |muokkaa wikitekstiä]
Noudettu kohteesta ”https://fi.wikipedia.org/w/index.php?title=Debuggeri&oldid=22045317
Luokka:

[8]ページ先頭

©2009-2026 Movatter.jp