Heisenbug

Tietokoneiden ohjelmointi ammattikieltä, heisenbug on ohjelmistovirhe, joka tuntuu katoavan tai muuttaa käyttäytymistään, kun yritetään tutkia sitä. Termi on sanaleikki nimeä Werner Heisenberg, fyysikko, joka ensimmäisenä vakuutti tarkkailija vaikutus kvanttimekaniikka, jonka mukaan teko tarkkailla järjestelmän väistämättä muuttaa tilaansa. Elektroniikassa perinteinen merkintä on koetin vaikutus, jossa kiinnitetään mittajohto laite muuttaa käyttäytymistä.

Samoin ehdoin, kuten bohrbug, mandelbug, ja schrödinbug on toisinaan ehdotettu muunlaisia ​​epätavallinen ohjelmistovirheitä, joskus leikillään; kuitenkin, toisin kuin "heisenbug", ne eivät ole laajalti tunnettu tai käytetty.

Esimerkit

Heisenbugs tapahtua koska yhteinen yrittää debug ohjelma, kuten lisäämällä tuotoksen lausuntoja tai suorittamalla se debuggeri, yleensä muokata koodia, muuttaa muistiosoitteet muuttujien ja ajoitus sen toteuttamista.

Yksi yleinen esimerkki heisenbug on vika, joka tulee näkyviin, kun ohjelma on käännetty optimoimalla kääntäjä, mutta ei silloin, kun sama ohjelma laaditaan ilman optimointia. Vaikka virheenkorjaus, arvostaa, että optimoitu ohjelma normaalisti pitää rekisteriä usein työnnetään päämuistiin. Tämä voi vaikuttaa esimerkiksi tulos liukulukujen vertailuja, koska arvo muistissa voi olla pienempi kantama ja tarkkuus kuin arvo rekisterissä. Vastaavasti, Heisenbugs voi johtua sivuvaikutuksia testissä käytetyt ilmaisut runtime väitteet kieliä kuten C ja C ++, jos testi lauseke ei arvioida kun väitteet on poistettu käytöstä tuotannossa koodin makro.

Muita yleisiä syitä heisenbugs käyttävät arvoa ei alustettu muuttuja, tai seuraavan virheellisen osoittimen. Debuggers myös yleisesti tarjota kelloja tai muita käyttöliittymiä, jotka aiheuttavat ylimääräisiä lähdekoodi toteutetaan vaivihkaa, joka voi puolestaan ​​muuttaa tilan ohjelma.

Aika voi myös olla tekijä heisenbugs, erityisesti monisäikeisiä sovelluksia. Ohjelmakoodin ohjauksessa debuggerin voi muuttaa suorittamisen ajoitusta ohjelman verrattuna normaaliin suorittamiseen. Joille aika vikoja kuten rotu ehdot eivät saa esiintyä, kun ohjelma on hidastaa yhden tehostamalla lähde viivoja debuggeri. Tämä pätee erityisesti silloin, kun käyttäytyminen liittyy vuorovaikutus yhteisö ei valvonnassa debuggeri, kuten kun virheenkorjaus verkon paketin käsittelyä kahden koneiden ja vain yksi on alle debuggeri valvonnan.

Heisenbugs voidaan pitää esiintymät tarkkailijan vaikutus tietotekniikan. Turhautunut ohjelmoijat voivat humoristisesti syyttää heisenbug on kuun, tai voi selittää sen pois niin pehmeä virhe johtuu alfahiukkasia tai kosmiset säteet vaikuttavat laitteisto.

Liittyvät ehdot

Bohrbug, opposition, on "hyvä, kiinteä bug". Kuten deterministinen Bohr atomin malli, ne eivät muuta käyttäytymistään ja ovat suhteellisen helposti havaittavissa.

Mandelbug on bugi, jonka syyt ovat niin monimutkaisia ​​sitä on mahdoton korjata, tai tekee sen käyttäytyminen näyttää kaoottinen tai jopa ei-deterministinen.

Schrödinbug on vika, joka ilmenee käynnissä ohjelmisto jälkeen ohjelmoija huomaa, että koodi olisi koskaan työskennellyt ensimmäinen paikka.

Hindenbug on bugi katastrofaalinen käyttäytymistä.

Historia termi

Termiä käytettiin 1985 Jim Gray, vuonna paperia noin ohjelmiston vikoja ja myös vuonna 1986 Jonathan Clark ja Zhahai Stewart postituslistalle comp.risks.

Bruce Lindsay, tutkija IBM, vahvisti vuonna 2004 ACM Queue haastattelussa, että hän oli läsnä, kun Heisenbug alun perin määritelty.

Aikaisemmin ulkonäkö ACM julkaisuluettelo 1983.

Päätöslauselma

Heisenbugs ovat yleensä ratkaista hyvin varovainen virheenkorjaus. Tämä toimii parhaiten, jos kukaan voi tunnistaa arvioitu pisteen koodia, jos vika tapahtuu. Sieltä ratkaisuja voidaan hakea tarkastuksen lähistöllä lausuntoja tai analyysi prosessin kaatopaikat.

Toinen tekniikka on tutkia lokit, erityisesti tuotettu nukka ja nukka kaltaisia ​​työkaluja.

Sillä hyvin pysyviä heisenbugs, saattaa olla tarpeen analysoida kaikki mahdolliset jäljet ​​ohjelman avulla staattinen analyysi tekniikoita, kuten abstrakti tulkinta määrittää niiden syy.

  0   0
Edellinen artikkeli James Gentle
Seuraava artikkeli Loriann Oberlin

Aiheeseen Liittyvät Artikkelit

Kommentit - 0

Ei kommentteja

Lisääkommentti

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Merkkiä jäljellä: 3000
captcha