La depuració és una part essencial del desenvolupament de programari, ja que permet identificar i corregir errors en el codi. En aquest mòdul, aprendrem diverses tècniques de depuració en el Llenguatge de Control (CL) per assegurar-nos que els nostres programes funcionin correctament i de manera eficient.

Objectius del Mòdul

  • Comprendre la importància de la depuració.
  • Aprendre a utilitzar les eines de depuració disponibles en CL.
  • Identificar i corregir errors comuns en els programes CL.
  • Aplicar tècniques de depuració per millorar la qualitat del codi.

  1. Importància de la Depuració

La depuració és crucial per diverses raons:

  • Qualitat del Codi: Assegura que el codi funcioni segons les especificacions.
  • Mantenibilitat: Facilita la comprensió i el manteniment del codi a llarg termini.
  • Eficiència: Millora el rendiment del programa eliminant errors que poden causar ineficiències.

  1. Eines de Depuració en CL

El Llenguatge de Control ofereix diverses eines i comandes per ajudar en la depuració. A continuació, es presenten algunes de les més utilitzades:

2.1. Comanda DSPJOBLOG

La comanda DSPJOBLOG (Display Job Log) mostra el registre de treball, que inclou missatges d'error i altres esdeveniments rellevants.

DSPJOBLOG JOB(123456/QUSER/QINTER)

2.2. Comanda STRDBG

La comanda STRDBG (Start Debug) inicia una sessió de depuració per a un programa CL.

STRDBG PGM(MYLIB/MYPGM)

2.3. Comanda ENDDBG

La comanda ENDDBG (End Debug) finalitza la sessió de depuració.

ENDDBG

2.4. Comanda ADDWCH

La comanda ADDWCH (Add Watch) permet afegir punts de control per monitoritzar variables específiques durant l'execució del programa.

ADDWCH VAR(&MYVAR)

  1. Identificació d'Errors Comuns

3.1. Errors de Sintaxi

Els errors de sintaxi són causats per una estructura incorrecta del codi. Aquests errors són fàcils d'identificar perquè el compilador els detecta durant la compilació.

3.2. Errors de Lògica

Els errors de lògica ocorren quan el codi no produeix el resultat esperat. Aquests errors són més difícils de detectar i requereixen una anàlisi detallada del codi.

3.3. Errors d'Execució

Els errors d'execució es produeixen durant l'execució del programa i poden ser causats per condicions inesperades, com ara valors de variables fora de rang.

  1. Tècniques de Depuració

4.1. Utilitzar Missatges de Depuració

Afegir missatges de depuració al codi pot ajudar a identificar on es produeixen els errors.

DCL VAR(&MSG) TYPE(*CHAR) LEN(50)
CHGVAR VAR(&MSG) VALUE('Iniciant el procés...')
SNDPGMMSG MSG(&MSG) TOUSR(*SYSOPR)

4.2. Dividir i Conquerir

Dividir el codi en parts més petites i provar cada part per separat pot ajudar a identificar la secció del codi que causa l'error.

4.3. Revisió de Codi

Revisar el codi amb un company o utilitzar eines de revisió de codi pot ajudar a identificar errors que potser no has vist.

4.4. Utilitzar Punts de Control

Els punts de control permeten aturar l'execució del programa en punts específics per inspeccionar l'estat de les variables i el flux del programa.

STRDBG PGM(MYLIB/MYPGM)
ADDWCH VAR(&MYVAR)

Exercici Pràctic

Exercici 1: Depuració d'un Programa CL

  1. Escriu un programa CL que llegeixi un fitxer i mostri el contingut.
  2. Introdueix un error de lògica intencionat (per exemple, una condició incorrecta en un bucle).
  3. Utilitza les tècniques de depuració apreses per identificar i corregir l'error.

Solució

PGM
    DCL VAR(&COUNTER) TYPE(*INT) VALUE(1)
    DCL VAR(&MAX) TYPE(*INT) VALUE(10)
    DCL VAR(&MSG) TYPE(*CHAR) LEN(50)

    CHGVAR VAR(&MSG) VALUE('Iniciant el bucle...')
    SNDPGMMSG MSG(&MSG) TOUSR(*SYSOPR)

    WHILE (&COUNTER <= &MAX)
        CHGVAR VAR(&MSG) VALUE('Counter: ' *CAT &COUNTER)
        SNDPGMMSG MSG(&MSG) TOUSR(*SYSOPR)
        CHGVAR VAR(&COUNTER) VALUE(&COUNTER + 1)
    ENDWHILE

    CHGVAR VAR(&MSG) VALUE('Finalitzant el programa...')
    SNDPGMMSG MSG(&MSG) TOUSR(*SYSOPR)
ENDPGM

Resum

En aquest mòdul, hem après la importància de la depuració i les eines disponibles en CL per ajudar-nos a identificar i corregir errors. Hem explorat tècniques de depuració com l'ús de missatges de depuració, la divisió del codi, la revisió de codi i l'ús de punts de control. A més, hem practicat aquestes tècniques amb un exercici pràctic.

En el proper mòdul, ens centrarem en l'optimització del rendiment per assegurar-nos que els nostres programes CL no només funcionin correctament, sinó que també siguin eficients.

© Copyright 2024. Tots els drets reservats