Options de compilation de débogage

Les options de compilation d'appliquant au débogage de programmes écrits en COBOL pour AIX et PL/I pour AIX sont les suivantes :

Tableau 1. Options de compilation pour le débogage de programmes écrits en COBOL pour AIX et PL/I pour AIX
Option de compilation Définition
-g Demande au compilateur de générer des informations de débogage pour le code source. Vous devez indiquer cette option si vous envisagez de déboguer votre code.
-qtest Demande au compilateur de générer des information de symbole de débogage pour le code source. Vous devez indiquer cette option si vous envisagez d'afficher et de modifier des variables dans votre code.

Le fait d'indiquer –qtest implique aussi –g, qui génère des informations de symbole en plus des informations de ligne.

Remarque : L'option de compilation –qtest s'applique uniquement au débogage des programmes écrits en PL/I pour AIX.

Les options de compilation suivantes s'appliquent au débogage des programmes écrits en IBM XL C/C++ pour AIX et en IBM XL C/C++ pour Linux. Elles ne s'appliquent pas au débogage des programmes écrits en COBOL pour AIX et en PL/I pour AIX.

Tableau 2. Options de compilation pour le débogage des programmes écrits en IBM XL C/C++ pour AIX et en IBM XL C/C++ pour Linux
Option de compilation Définition
-g

-g demande au compilateur de générer des informations de débogage pour le code source. Vous devez indiquer cette option si vous envisagez de déboguer votre code.

Le compilateur peut également prendre en charge ces niveaux -g étendus pour réduire la taille des exécutables ou pour améliorer la performance des applications (en particulier en combinaison avec l'option -O2) tout en conservant un certain niveau des possibilités de débogage :

-g9 fournit la fonctionnalité de -g. Les modifications apportées aux valeurs des variables via le débogueur peuvent être écrites en mémoire et toutes les lignes de l'exécutable peuvent être exécutées pas à pas par le débogueur.

-g8 réduit la quantité d'informations de débogage pour les variables. Les modifications apportées aux valeurs des variables via le débogueur ne peuvent pas être réécrites dans la mémoire. Toutes les lignes de l'exécutable peuvent être exécutées pas à pas par le débogueur.

-g5 réduit la quantité d'informations de débogage pour les variables. Les modifications apportées aux valeurs des variables via le débogueur ne peuvent pas être réécrites dans la mémoire de l'application. L'option -g5 réduit aussi la quantité d'informations de débogage sauvegardées pour les lignes exécutables. Seule la première ligne exécutable de chaque fonction et des instructions de flux de contrôle sélectionnées seront exécutables pas à pas par le débogeur. Les autres lignes apparaîtront comme étant non exécutables et le débogueur ne pourra pas les exécuter pas à pas.

-qfullpath Ajoute le nom complet de tous les fichiers source aux informations de débogage. Cela peut faciliter la recherche de fichiers source par le débogueur.
-qheapdebug Force le programme résultant à utiliser le segment de mémoire de débogage. Le débogueur peut détecter les altérations du segment de mémoire et s'arrêter au niveau où elles ont été détectées.
Remarque : Cette option n'est prise en charge que sous AIX.
-qlinedebug Elimine la génération des informations de débogage qui vous permettent de détecter les variables dans votre code. Cela peut réduire considérablement la taille de l'exécutable résultant, surtout pour les programmes C++. Cette option est recommandée si vous avez optimisé votre code car l'optimisation empêche le débogueur d'afficher les valeurs des variables de manière fiable.
-qtbtable Contrôle la génération d'une table de trace à la fin de toutes les fonctions. Nous vous déconseillons d'indiquer -qtbtable=none si vous devez déboguer le code.
-qdbxextra Force le compilateur à inclure des informations de débogage pour les types non référencés. Généralement déconseillé car la taille de l'exécutable résultant est très importante.
Remarque : Cette option n'est prise en charge que sous AIX.
-qsmp=noopt Par défaut, l'option -qsmp applique des optimisations aux fonctions 'outline' (code situé dans les régions parallèles). Ces optimisations entraînent un désaccord entre le programme et les informations de débogage. De plus, lors de l'exécution du code 'outline', elles ont pour effet de faire afficher des valeurs erronées au débogueur, à la fois pour les variables privées et pour les variables locales partagées. L'utilisation de -qsmp=noopt à la place de -qsmp permettra de désactiver ces optimisations et de faciliter le débogage des régions parallèles.

Commentaires en retour