jueves, 26 de marzo de 2009

I see dead variables

He visto que mucha gente aveces tiene que limpiar el código en búsqueda de variables que no estén en uso y no sabe como hacerlo, se que revisar una a una por todo el código puede llegar a ser muy tedioso, por eso acá les dejo una forma de agilizar lo un poco.

Lo que vamos a hacer es generar en la compilación una lista cruzada entre las variables y las posiciones en las que se están usando, ya con esto solo tendríamos que ver en la lista que variables no se estan usando en ninguna posicion y tendriamos todas las variables sin referencia para borrarlas.

Para generar esta lista debemos editar el job de compilacion que estemos usando y pasarle el parametro XREF. Este parametro es el que se encargara de generar la lista cruzada en la sysout.

Veamos un ejemplo.
En esta procion de Job de compilacion podemos ver los parametros

//COBOLMVS EXEC PGM=VIACOBII,
//PARM=('C,RES,RENT,FSRT,NOSEQ,VBREF,TRUNC(OPT),OFF',
//'DATA(31),XREF,APOST,NONUM,LIST,MAP,NOOPT,LIB,F(I,I)'),
//COND=(7,LT),REGION=4096K
//*STEPLIB DD DSN=SYS1.ADCOB.SIGYCOMP,DISP=SHR

Luego de correr el Job con el parametro XREF, vamos al spool y bsucamos en la salida del Job la leyenda...
'Cross-reference of data names'
Seguido a esto aparecen listadas todas las variables con sus referencias.
Ej:
58 WS-VARIABLE1
63 WS-VARIABLE2. . . . . . . . . 4302
64 WS-VARIABLE3. . . . . . . . . 4301

Como se ve en este ejemplo las variables 2 y 3 son utilizadas en las lineas 4302 y 4301 respectivamente. Pero la variable1 NO ESTA EN USO.

No hay comentarios:

Publicar un comentario