Bugg (dator)

En programvarubugg är ett problem med koden i ett datorprogram som gör att det inte fungerar som det ska. De kan orsaka olägenheter för användaren och kan få datorn att krascha eller frysa. De flesta datorprogram har buggar. Ett program som har ett stort antal buggar (eller möjligen en enda eller några få allvarliga buggar) sägs vara buggigt.

De flesta buggar orsakas av dålig programmering av utvecklaren, men ibland kan de orsakas av problem med kompilatorn. När fel upptäcks skickar folk felrapporter till utvecklaren för att berätta om felet och låta dem åtgärda det.

Ibland säger folk att deras dator har en bugg när något är fel med den. Problemet orsakas vanligtvis av ett datavirus som har infekterat deras dator och gör den långsam eller gör olika saker.

Vissa buggar är ofarliga, till exempel tillåter många videospel felaktigt att föremål rör sig genom väggar. Andra fel är allvarligare, t.ex. ett fel i ett navigationssystem som gör att ett flygplan exploderar.



Typer av buggar

Buffertöverskridande

Ett buffertöverskridande inträffar när ett program skriver till eller läser från ett minnesområde som det inte får komma åt.

Aritmetiskt överflöde

Ett aritmetiskt överflöde inträffar när ett tal i en variabel ökas utöver det högsta tal som variabeln tillåter. Detta leder vanligtvis till att talet återställs till noll.

Oändlig slinga

En oändlig slinga uppstår när ett program går in i en slinga (en serie instruktioner som upprepas många gånger) och det inte finns någon väg ut ur slingan. Detta kan leda till att programmet fryser.

Avrundningsfel

Om en variabel med flyttal inte har tillräcklig precision kan det tal som lagras i den vara felaktigt. Detta kan orsaka olika problem beroende på programtypen, till exempel kan det leda till att ett navigationsprogram navigerar till en oönskad plats eller att ljudet förvrängs i ett ljudinspelningsprogram.

Division med noll

Division med noll är en ogiltig matematisk operation. Om ett program dividerar ett heltal med noll kommer det att krascha. På Linux är meddelandet som visas när detta fel inträffar "floating point exception" (undantag för flyttal), även om flyttal inte var inblandade. Matematik med flytande punkter tillåter ibland division med noll. Detta resulterar vanligtvis i ett speciellt "not a number"-värde.

Problem med klippning

I videospel uppstår clippingproblem, även kallade kollisionsdetekteringsproblem, när ett objekt passerar genom en barriär (t.ex. en vägg, ett golv eller ett tak) som det inte var tänkt att passera genom. Detta är ett mycket vanligt fel som förekommer i många videospel. Det kan till exempel hända i Doom 2 när ett krossat monster återuppstår av en ärkevild. Clippingproblem kan ofta användas som en tidsbesparande taktik i speedruns, till exempel i Super Mario 64 är det möjligt att hoppa över att gå upp för spiraltrappan i slottet genom att hoppa genom taket.

Säkerhetsproblem

Säkerhetsfel är fel som gör det möjligt för en inkräktare att antingen få tillgång till datorn eller få datorn att krascha. Att få datorn att krascha kallas för en överbelastningsattack. Det är särskilt viktigt att åtgärda säkerhetsfel eftersom de kan göra det möjligt för inkräktare att stjäla viktig information, t.ex. kreditkortsnummer eller lösenord. Exempel på säkerhetsfel är Heartbleed och Shellshock.



Misbugs

En felrapport är ett fel som har använts som en funktion. Ett exempel är en bugg i en Android-telefon som gör det möjligt för användare att få rotbehörighet.



Fel i maskinvaran

Vissa fel påverkar hårdvaran (de fysiska delarna av datorn) istället för programvaran. Om man till exempel körde instruktionen lock cmpxchg8b eax på gamla Pentium-processorer skulle det leda till att processorn slutade fungera tills den startades om. Eftersom hårdvarubuggar är fysiska konstruktionsfel kan de inte rättas till med en programuppdatering, även om det kan vara möjligt att arbeta runt (dölja) buggen med en programuppdatering.



Frågor och svar

F: Vad är en programvarubugg?


S: En programvarubugg är ett problem med koden i ett datorprogram som gör att det inte fungerar korrekt.

F: Vilka är konsekvenserna av ett programfel?


S: En programvarubugg kan orsaka olägenheter för användaren och kan få datorn att krascha eller frysa.

F: Har alla datorprogram buggar?


S: Ja, de flesta datorprogram har buggar.

F: Vad är ett buggigt program?


S: Ett buggigt program är ett program som har ett stort antal buggar, eller möjligen en eller ett par allvarliga buggar.

F: Vem är ansvarig för de flesta buggar i datorprogram?


S: De flesta buggar orsakas av dålig programmering av utvecklaren, men ibland kan de orsakas av kompilatorproblem.

F: Vad gör man när man hittar ett fel i ett datorprogram?


S: När buggar hittas skickar man buggrapporter till utvecklaren för att berätta om buggen och låta dem åtgärda den.

F: Vad menar man när man säger att datorn har en bugg?


S: När folk säger att deras dator har en bugg menar de vanligtvis att något är fel med den, vilket vanligtvis orsakas av ett datavirus som har infekterat deras dator och gör den långsam eller gör olika saker.

AlegsaOnline.com - 2020 / 2023 - License CC3