Opciones de compilador para la depuración

Las opciones de compilador relevantes para la depuración de programas COBOL para AIX y PL/I para AIX son las siguientes:

Tabla 1. Opciones de compilador para la depuración de COBOL para AIX y PL/I para AIX
Opción de compilador Definición
-g Solicita el compilador que genere información de depuración para el código fuente. Debe especificar esta opción si tiene previsto depurar el código.
-qtest Solicita el compilador que genere información de símbolo de depuración para el código fuente. Debe especificar esta opción si pretende visualizar y alterar variables en el código.

Especificar -qtest también implica -g, lo que genera información de símbolo además de información de línea.

Nota: La opción del compilador -qtest sólo es relevante para la depuración de programas PL/I para AIX.

Estas opciones de compilador son relevantes para la depuración de programas IBM XL C/C++ para AIX e IBM XL C/C++ para Linux. No son relevantes para la depuración de programas COBOL para AIX y PL/I para AIX.

Tabla 2. Opciones de compilador para la depuración de IBM XL C/C++ para AIX e IBM XL C/C++ para Linux
Opción de compilador Definición
-g

-g solicita el compilador que genere información de depuración para el código fuente. Debe especificar esta opción si tiene previsto depurar el código.

El compilador también puede soportar estos niveles de -g ampliados para reducir el tamaño ejecutable o para mejorar el rendimiento de la aplicación (especialmente cuando se combina con la opción -O2) al tiempo que se mantiene algún nivel para la depuración:

-g9 proporciona la funcionalidad -g. Las modificaciones de valores de variable a través del depurador se escribirán en la memoria y el depurador podrá recorrer todas las líneas ejecutables.

-g8 reduce la cantidad de información de depuración para variables. Las modificaciones realizadas en los valores de variable a través del depurador no se volverán a escribir en la memoria. El depurador podrá recorrer todas las líneas ejecutables.

-g5 reduce la cantidad de información de depuración para variables. Las modificaciones realizadas en los valores de variable a través del depurador no se volverán a escribir en la memoria de la aplicación. La opción -g5 también reduce la cantidad de información de depuración guardada para líneas ejecutables. El depurador solo podrá recorrer la primera línea ejecutable de cada función y las sentencias de flujo de control seleccionadas. El resto de líneas aparecerán como no ejecutables y el depurador no podrá recorrerlas.

-qfullpath Provoca la adición del nombre completo de todos los archivos fuente a la información de depuración. Esto puede facilitar al depurador la búsqueda de los archivos fuente.
-qheapdebug Obliga al programa resultante a utilizar el almacenamiento dinámico de depuración. Si se producen daños en el almacenamiento dinámico, el depurador puede detectarlos y detenerse en el punto en que lo ha hecho.
Nota: Esta opción sólo está soportada en AIX.
-qlinedebug Suprime la generación de la información de depuración que permite visualizar variables en el código. Esto puede reducir significativamente el tamaño del ejecutable resultante, especialmente en programas C++. Esta opción es aconsejable si ha optimizado el código, ya que la optimización hace imposible que el depurador muestre valores de variable de forma fiable.
-qtbtable Controla la generación de una tabla de rastreo hacia atrás al final de todas las funciones. No es aconsejable especificar -qtbtable=none si debe depurarse el código.
-qdbxextra Obliga al compilador a incluir información de depuración para tipos no referenciados. En general, esto no es aconsejable, ya que hace que el tamaño del ejecutable resultante sea muy grande.
Nota: Esta opción sólo está soportada en AIX.
-qsmp=noopt Por omisión, la opción -qsmp aplicará optimizaciones en las funciones descritas (el código de las regiones paralelas). Estas optimizaciones producen una discrepancia entre el programa y la información de depuración, y provocan que el depurador muestre valores incorrectos para las variables locales tanto privadas como compartidas cuando se ejecuta el código descrito. El uso de -qsmp=noopt, en lugar de -qsmp, inhabilitará estas optimizaciones y facilitará la depuración de regiones paralelas.

Comentarios