Niels Gamborgs online notesbog

Debugging for begyndere

april 23rd, 2010. Kategori: Programmering

Tips til debugging

Denne guide til bebugge rettet mod begyndere i programmering.

Jeg vil give konkrete  tips og  idéer samlet i 3 simple trin.  Jeg bruger PHP og JavaScript eksempler, men metoderne til at debugge er universelle, og kan bruges i forbindelse med alle programmeringssprog. 

Baggrunden er, at jeg i forbindelse med mit  gæstebogs script får en del henvendelser om hjælp.

Basal debugging

Basalt set handler debugging om at isolere problemer. Det gør man ved at skille tingene ad og undersøge de enkelte dele. Virker hver enkelt del, som vi forventer?

3 simple trin til debugging

  1. Tjek, dobbelt tjek og triple tjek
  2. Skriv variabler ud
  3. Skil koden ad

1. Tjek  - dobbelt tjek - triple tjek

Start med at tjekke og dobbelt tjekke alle indtastninger, parenteser, tegn etc. Er  variabelnavne identiske?  Er  funktionskald og navne er stavet rigtigt?  Er syntaksen korrekt?  Når det er gjort, så tjek det hele en gang til…

2. Skriv dine variabler ud

Næste trin er at skrive dine variabler ud. Og fylde en masse print statements i din kode. Så kan du se hvilke værdier dine variabler har og hvor meget af koden, der bliver afviklet. Brug f.eks. echo i PHP og alert() i JavasScript:

PHP eksempel:

$brugernavn = $_GET['brugernavn'];
echo $brugernavn;

if($brugernavn == “”){
echo ‘test1′;
do something…
echo ‘test2′;
}else{
do something else …
echo ‘test3′;
}

JavaScript eksempel:

var brugernavn = document.getElementById(‘brugernavn’).value;

alert(brugernavn);

if(brugernavn.length() < 3){
do something …
alert(‘test1′);
}else if{
alert(‘test2′);
do something else …
alert(‘test3′);
}

Super debug metode til at finde ud af, hvor langt du kommer i afviklingen af koden, før det går galt. Bliver koden i  kodeblokkene afviklet, som du forventer?

Hardcode dine variabler

Du kan også prøve at hardcode dine variabler i stedet for at hente dem med dit script.

$brugernavn = “Nikolaj”;

Det er en god metode til at isolere og  afdække, om det er når du henter data eller behandler data, at du får fejl.

3. Skil koden ad og simplificér den

Prøv at pille koden fra hinanden og gør den enkel,  så du kan tjekke de enkelte dele. Prøv f.eks.

if(2 == 2){…

frem for:

if(strlen(trim($_GET['brugernavn'])) > 0 ){…

Så får du debugget om det er dine kodeblokke eller det er de betingelser, du har sat op i if-sætningerne,  der er problemer med.

På samme måde kan du pille kodeblokke helt ud af for-løkker etc. Eller du kan simplificere dem ved at hardcode tallene i løkken som f.eks.:

for(i=0; i<5; i++;) {…

Bonus tips

2 almindelige syntaks fejl

Her er 2 meget almindelige fejl, hvor fejlmeddelelserne ikke umiddelbart afslører problemet.

PHP eksempel:

Parse error: parse error, expecting `’,” or `’;” in C:\wamp\www\test\minSide.php  on line 13

Denne PHP parse error opstår, når du ikke har afsluttet den foregående linje med et semikolon.

JavaScript eksempel:

minFunktion is not defined

Denne JavaScript fejl optræder , når du forsøger at kalde en tidligere defineret funktion. Funktionen kan sagtens være defineret, men  indeholder ´f.eks. en syntaks fejl som en krølle-parantes/tuborg-parantes for meget eller for lidt.

Google din fejlmeddelelser

Du er helt sikkert ikke den første der har problemet. Fjern lokale navne fra din fejlmeddelser og søg på Google. Måske du kan finde hjælp til at indsnævre problemet.

Værktøj til debugging

JavaScript udvikling foregår bedst i en Firefox browser, fordi Firefox har gode værktøjer til debugging af JavaScript. Brug enten Firefox’s indbyggede fejlkonsol eller Firefox plugin’et Firebug. Begge giver gode og overskuelige fejlmeddelelser.

Afrunding

Debugging er en fast bestanddel af al programmering. Når man programmerer laver man også fejl. Heldigvis bliver man som regel bliver både dygtigere og klogere af det. Og næste gang er det nogle helt andre fejl, man laver. ;)

Kender du andre gode begynder tips, så smid endelig en kommentar.

Skriv en kommentar