1. Bugg

Programmerare har sin egen slang, även om många anser att det är teknisk jargong. Du kan i alla fall inte undvika att lära känna den. Du måste dyka in i detaljerna. Så låt oss dyka in.

Ett av de första orden du kommer att lära känna är " bug ", dvs en insekt . I samband med mjukvaruutveckling betyder detta ord ett fel i ett program, en instans av att programmet gör något fel eller inte riktigt rätt. Eller helt enkelt jobba konstigt.

Men om en programmerare tror att programmet, trots sitt udda beteende, gör precis vad det ska, då brukar han eller hon deklarera något i stil med "det är inte en bugg, det är en funktion". Vilket har gett upphov till ett gäng internetmemes.

I allmänhet kan det finnas hur många orsaker som helst till ett programvarufel: allt från fel i programmets logik, stavfel och felaktig programarkitektur, ända upp till problem i kompilatorn. Programmerare måste i alla fall åtgärda både riktiga buggar och alla andra "brister" i sina program.

Historien om ordet "bugg"

Den vanligaste versionen av ursprunget till ordet "bugg" är något av en legend.

I september 1945 testade forskare vid Harvard University en av de första datorerna, Mark II. Datorn fungerade inte som den ska, och i färd med att kontrollera alla kort hittade de en mal som satt fast mellan kontakterna på ett elektromekaniskt relä.

Den extraherade insekten tejpades in i en teknisk logg, åtföljd av denna inskription: "Första faktiska fallet med att bugg hittas."

Denna roliga historia tros vara början på användningen av ordet " bugg " för att betyda ett fel, och ordet " felsöka " har blivit synonymt med att eliminera buggar.


2. Felsökning av programmet

För att fixa buggar i sina program använder programmerare speciella program som kallas debuggers . Vissa av dessa program vet till och med hur man felsöker maskinkod.

Java-programmerare använder IDE för att felsöka sina program. Såsom IntelliJ IDEA, Eclipse och NetBeans. IntelliJ IDEA är den överlägset mest kraftfulla IDE, så vi går igenom felsökningsprocessen med den som ett exempel.

IntelliJ IDEA kan köra ditt program i två lägen:

Utförandelägen Verktygsfältikon Snabbtangenter
Normalt utförande Shift+F10
Starta i felsökningsläge Shift+F9

Du är redan bekant med normal körning: programmet startar, körs och avslutas. Men felsökningsläget har många överraskningar i beredskap för dig.

Felsökningsläge

Felsökningsläget låter dig gå steg för steg genom hela programmet. Eller rättare sagt, det låter dig flytta rad för rad . Dessutom kan du observera variablernas värden vid varje steg i programmet (efter att varje kodrad exekveras). Och du kan till och med ändra deras värderingar!

För att få en minimal förståelse för felsökning av ett program måste du lära dig tre saker:

  • Brytpunkter
  • Steg-för-steg utförande
  • Inspektera värdet av variabler

3. Brytpunkter

IDE låter dig placera speciella markörer som kallas brytpunkter i din kod. Varje gång ett program som körs i felsökningsläge når en rad markerad med en brytpunkt pausas körningen.

För att sätta en brytpunkt på en specifik linje behöver du bara klicka till vänster om linjen i IDEA. Exempel:

Brytpunkter IntelliJ IDEA

Linjen kommer att markeras med en brytpunkt, och IntelliJ IDEA kommer att markera den i rött:

markerad med en brytpunkt

Ett andra musklick på rutan till vänster om koden tar bort brytpunkten .

En brytpunkt kan också placeras på den aktuella linjen helt enkelt genom att använda snabbtangentskombinationen Ctrl+ F8. Om du trycker på Ctrl+ F8igen på en rad som redan har en brytpunkt raderas den.


4. Starta programmet i felsökningsläge

Om du har minst en brytpunkt i ditt program kan du köra programmet i felsökningsläge genom att trycka på Shift+ F9eller klicka på "buggikonen".

Efter att ha startat i felsökningsläge körs programmet som vanligt. Men så fort den når en kodrad markerad med en brytpunkt pausar den. Exempel:

Starta programmet i felsökningsläge

I den övre halvan av skärmdumpen ser du programkod med två brytpunkter. Programmets exekvering stoppades på rad 5, som är markerad med en blå linje. Rad 5 har inte körts ännu: inget har matats ut till konsolen ännu.

I den nedre halvan av skärmen ser du felsökningsrutorna: felsökningsrutan , konsolpanelen  och en uppsättning knappar för felsökningsläge.

Du kan återuppta ditt program (dvs fortsätta körningen) genom att trycka på knappen Återuppta program i den nedre vänstra rutan (eller tryck på ) F9.

Starta programmet i felsökningsläge 3

Om du trycker på den här knappen (eller F9), fortsätter programmet att köras tills det möter nästa brytpunkt eller slutar. Här är vad vi ser efter att ha klickat på knappen:

Starta programmet i felsökningsläge 4

Programmet stannade vid den andra brytpunkten, och orden Hellooch andkan ses i konsolen. Detta är ett tecken på att vi endast har utfört två av de tre raderna som visar utdata på skärmen.


5. Steg-för-steg-utförande

Om ditt program körs i felsökningsläge kan du också gå igenom det: ett steg är en rad . Det finns två snabbtangenter för steg-för-steg exekvering: F7och F8: var och en gör att den aktuella kodraden exekveras. Men först måste du fortfarande stoppa ditt program med en brytpunkt .

Om du vill köra ditt program rad för rad, måste du sätta brytpunkt i början av main()metoden och köra den i felsökningsläge.

När programmet slutar kan du börja köra det rad för rad. Ett tryck på F8knappen utför en rad.

Så här ser vårt program ut efter att det stoppats och vi trycker på F8knappen en gång:

Starta programmet i felsökningsläge.  Steg-för-steg utförande

Den första raden i huvudmetoden har redan körts, och den nuvarande raden är den andra raden. Du kan också se längst ner på skärmdumpen att ordet Helloredan visas på skärmen.


6. Steg-för-steg exekvering med att gå in i metoder

Om du har skrivit dina egna metoder i programmet och du vill att exekvering ska gå in i dina metoder i felsökningsläge, dvs du vill "gå in i metoden", så måste du trycka på istället F7för F8.

Låt oss säga att du går igenom programmet och nu stoppas vid rad 4. Om du trycker på , F8kommer IDEA helt enkelt att köra den fjärde raden och gå vidare till den femte.

Steg-för-steg exekvering med att gå in i metoder 2

Men om du trycker på F7kommer IDEA att gå in i main2()metoden:

Steg-för-steg exekvering med att gå in i metoder 3

Det är väldigt enkelt. Om du inte riktigt bryr dig om vad som händer i en metod eller hur, då trycker du på F8. Om det är viktigt, tryck på F7och stega igenom hela dess kod.