1. Fout

Programmeurs hebben hun eigen jargon, hoewel velen het als technisch jargon beschouwen. Je kunt er in ieder geval niet omheen om het te leren kennen. Je moet in de details duiken. Dus laten we erin duiken.

Een van de eerste woorden die je leert kennen is " insect ", oftewel een insect . In de context van softwareontwikkeling betekent dit woord een fout in een programma, een exemplaar van het programma dat iets verkeerd of niet helemaal goed doet. Of werkt gewoon vreemd.

Maar als een programmeur denkt dat het programma, ondanks zijn vreemde gedrag, precies doet wat het moet doen, dan verklaart hij of zij meestal zoiets als "het is geen bug, het is een functie". Dat heeft een hoop internetmemes voortgebracht.

Over het algemeen kunnen er tal van redenen zijn voor een softwaredefect: alles van fouten in de programmalogica, typefouten en onjuiste programma-architectuur tot problemen in de compiler. In ieder geval moeten programmeurs zowel echte bugs als andere "tekortkomingen" in hun programma's oplossen.

De geschiedenis van het woord "bug"

De meest voorkomende versie van de oorsprong van het woord "bug" is iets van een legende.

In september 1945 testten wetenschappers van Harvard University een van de eerste computers, de Mark II. De computer werkte niet naar behoren en tijdens het controleren van alle borden vonden ze een mot die vastzat tussen de contacten van een elektromechanisch relais.

Het geëxtraheerde insect werd op een technisch logboek geplakt, vergezeld van de inscriptie: "Eerste daadwerkelijke bug gevonden."

Aangenomen wordt dat dit grappige verhaal het begin is van het gebruik van het woord " bug " om een ​​fout aan te duiden, en het woord " debuggen " is synoniem geworden met het elimineren van bugs.


2. Debuggen van het programma

Om bugs in hun programma's op te lossen, gebruiken programmeurs speciale programma's die debuggers worden genoemd . Sommige van deze programma's weten zelfs hoe ze machinecode moeten debuggen.

Java-programmeurs gebruiken IDE's om hun programma's te debuggen . Zoals IntelliJ IDEA, Eclipse en NetBeans. IntelliJ IDEA is verreweg de krachtigste IDE, dus we zullen het foutopsporingsproces doorlopen en dit als voorbeeld gebruiken.

IntelliJ IDEA kan uw programma in twee modi uitvoeren:

Uitvoeringsmodi Werkbalk icoon Sneltoetsen
Normale uitvoering Shift+F10
Begin in de foutopsporingsmodus Shift+F9

U bent al bekend met de normale uitvoering: het programma start, draait en sluit af. Maar de foutopsporingsmodus heeft veel verrassingen voor je in petto.

Foutopsporingsmodus

In de foutopsporingsmodus kunt u stap voor stap door uw hele programma lopen . Of beter gezegd, het laat je regel voor regel bewegen . Bovendien kunt u de waarden van de variabelen observeren bij elke stap van het programma (nadat elke regel code is uitgevoerd). En je kunt zelfs hun waarden veranderen!

Om zelfs maar een minimale greep te krijgen op het debuggen van een programma, moet u drie dingen leren:

  • Breekpunten
  • Stapsgewijze uitvoering
  • De waarde van variabelen inspecteren

3. Breekpunten

Met de IDE kunt u speciale markeringen, breekpunten genaamd , in uw code plaatsen. Elke keer dat een programma dat in foutopsporingsmodus draait een regel bereikt die is gemarkeerd met een breekpunt , wordt de uitvoering gepauzeerd.

Om een ​​breekpunt op een specifieke regel te plaatsen, hoeft u alleen maar links van de regel in IDEA te klikken. Voorbeeld:

Breekpunten IntelliJ IDEA

De regel wordt gemarkeerd met een breekpunt en IntelliJ IDEA markeert deze in rood:

gemarkeerd met een breekpunt

Een tweede muisklik op het deelvenster links van de code zal het breekpunt verwijderen .

Een breekpunt kan ook eenvoudig op de huidige regel worden geplaatst door de sneltoetscombinatie Ctrl+ te gebruiken F8. CtrlAls u nogmaals op + drukt F8op een regel die al een breekpunt heeft , wordt deze verwijderd.


4. Start het programma in de foutopsporingsmodus

Als u ten minste één breekpunt in uw programma heeft, kunt u het programma in foutopsporingsmodus uitvoeren door op Shift+ te drukken F9of op het "bugpictogram" te klikken.

Na het starten in debug-modus, werkt het programma zoals gewoonlijk. Maar zodra het een coderegel bereikt die is gemarkeerd met een breekpunt , zal het pauzeren. Voorbeeld:

Start het programma in debug-modus

In de bovenste helft van de schermafbeelding ziet u programmacode met twee breekpunten. De uitvoering van het programma stopte op regel 5, die is gemarkeerd met een blauwe lijn. Regel 5 is nog niet uitgevoerd: er is nog niets uitgevoerd naar de console.

In de onderste helft van het scherm ziet u de foutopsporingsvensters: het foutopsporingsvenster , het consolevenster  en een aantal knoppen voor de foutopsporingsmodus.

U kunt uw programma hervatten (dwz de uitvoering voortzetten) door op de knop Programma hervatten in het paneel linksonder te drukken (of druk op F9).

Start het programma in foutopsporingsmodus 3

Als u op deze knop (of F9) drukt, blijft het programma draaien totdat het het volgende breekpunt tegenkomt of stopt. Dit is wat we zien nadat we op de knop hebben geklikt:

Start het programma in foutopsporingsmodus 4

Het programma stopte bij het tweede breekpunt en de woorden Helloen andzijn te zien in de console. Dit is een teken dat we slechts twee van de drie regels hebben uitgevoerd die uitvoer op het scherm weergeven.


5. Stapsgewijze uitvoering

Als uw programma in debug-modus draait, kunt u er ook doorheen stappen: één stap is één regel . Er zijn twee sneltoetsen voor stapsgewijze uitvoering: F7en F8: elk zorgt ervoor dat de huidige coderegel wordt uitgevoerd. Maar eerst moet je je programma nog stoppen met een breekpunt .

Als u uw programma regel voor regel wilt uitvoeren, moet u een onderbrekingspunt aan het begin van de main()methode plaatsen en het in foutopsporingsmodus uitvoeren.

Wanneer het programma stopt, kunt u het regel voor regel gaan uitvoeren. Met één druk op de F8toets wordt één regel uitgevoerd.

Zo ziet ons programma eruit nadat het is gestopt en we F8eenmaal op de toets drukken:

Start het programma in debug-modus.  Stapsgewijze uitvoering

De eerste regel van de hoofdmethode is al uitgevoerd en de huidige regel is de tweede regel. Je kunt ook onderaan de schermafbeelding zien dat het woord Helloal op het scherm wordt weergegeven.


6. Stapsgewijze uitvoering met stepping into methods

Als u uw eigen methoden in het programma heeft geschreven en u wilt dat de uitvoering binnen uw methoden gaat in debug-modus, dwz u wilt "in de methode stappen", dan moet u op drukken in plaats van F7op F8.

Laten we zeggen dat u het programma stapsgewijs doorloopt en nu bent gestopt bij regel 4. Als u op drukt F8, voert IDEA gewoon de vierde regel uit en gaat verder naar de vijfde regel.

Stapsgewijze uitvoering met stapsgewijze methodes 2

Maar als u op drukt F7, stapt IDEA in de main2()methode:

Stapsgewijze uitvoering met stapsgewijze methodes 3

Het is heel simpel. Als het je niet echt kan schelen wat er binnen een methode gebeurt of hoe, dan druk je op F8. Als het belangrijk is, druk dan op F7en doorloop alle code.