Ohjelmointi Unixissa, luku 7 Tutkinta (debuggaus):

Tutkintaesimerkki

Seuraavassa on esimerkki tutkintaohjelman käytöstä ohjelman virhetilanteen paikantamiseen. On huomattava, että näin saadaan selville virheen välitön syy (tässä taulukon ylivuoto) ja se, missä ja miten se sattui - ei sitä, miten siihen joudutaan eli mitä ohjelman logiikassa on pielessä. - Selitykset ovat esimerkkiajon jälkeen.

leka 51 % xlf -O looppi.f
** _main   === End of Compilation 1 ===
1501-510  Compilation successful for file looppi.f.
leka 52 % a.out >tulos
5
Segmentation fault
leka 53 % xlf -C looppi.f
** _main   === End of Compilation 1 ===
1501-510  Compilation successful for file looppi.f.
leka 54 % a.out >tulos
5
Trace/BPT trap
leka 55 % xlf -C -g looppi.f
** _main   === End of Compilation 1 ===
1501-510  Compilation successful for file looppi.f.
leka 56 % dbx a.out
dbx Version 3.1
Type 'help' for help.
reading symbolic information ...
(dbx) run
 ANNA I
5
           4 
           4 

trace trap in _main at line 8
    8            N(J)=N(J)+N(J-1)
(dbx) print j
6 
(dbx) print n
(1)	0
(2)	0
(3)	4
(4)	4
(5)	4
 
(dbx) list 5,10
    5         J=I-1
    6         N(J-1) = J
    7    2    IF(J.GT.1) THEN
    8            N(J)=N(J)+N(J-1)
    9            J=J+1
   10            WRITE(6,*)N(J-1)
(dbx) quit
leka 57 % 

Mitä oikein tehtiin:

Tämä oli tietenkin alkeellinen esimerkki (ilman katkokohtien asettamista tms., jota tarvitaan silloin, kun virhe ei paikannu yhtä yksinkertaisesti kuin tässä) mutta osoittanee sen, että tutkinta on huomattavan helppoa.