Le compilateur GCC 7 sera l’occasion de fournir des messages plus informatifs aux développeurs lors de la phase de débogage. Il s’agit actuellement d’un point faible qui, bien qu’en partie compensé, n’a pas encore été résolu. L’idée est bien sûr d’aider les développeurs pendant la correction des problèmes.
La phase de débogage est une étape délicate dans la conception d’un logiciel ou de n’importe quel produit requérant du code. Quel que soit le langage utilisé, le risque zéro n’existe pas. Un bug est une erreur dans le code, qui peut alors se manifester de plusieurs manières, comme une fonction inopérante, un souci dans l’affichage, voire l’impossibilité de démarrer le logiciel. Il peut ouvrir également une brèche dans la sécurité.
Suggestions et indices de correction
Le débogage consiste donc à repérer les bugs et à les corriger. Il existe de nombreuses manières de les trouver, notamment les retours durant les phases de test, ou des outils intégrés pour éliminer toutes les catégories courantes de problèmes. Les compilateurs peuvent également signaler des soucis pendant qu’ils travaillent. À ce niveau, l’information fournie au développeur est primordiale : plus elle est précise, plus il saura ce qu’il doit faire, ou quel renseignement aller chercher.
GCC 7, actuellement en développement, devrait particulièrement s’améliorer sur ce point. Le renforcement des messages a déjà fait l’objet de plusieurs enrichissements, mais la future version améliorera notamment les suggestions, surtout sur les noms de champs mal écrits. Des indices de correction seront fournis dans un plus grand nombre de cas, dont les erreurs dans les noms de fonctions, les noms des macros, les noms de type, les initialiseurs, ou encore les directives du préprocesseur.
Des améliorations autour de l'assembleur également
Parmi les autres améliorations en préparation, le soulignage de la zone concernée quand un avertissement survient dans une chaine de format. On trouvera également des suggestions de points-virgules manquants, ainsi que pour des arguments ou paramètres mal écrits. Comme l’indique Phoronix, ces apports sont ceux en « l’état » du développement de GCC 7 car il reste encore plusieurs mois de travail avant son arrivée.
GCC 7 sera par ailleurs plus expressif sur l’assembleur, notamment sur sa représentation. Le compilateur fournira des données supplémentaires, comme la signification des expressions mises en avant, et surtout les lignes de code correspondant à la partie de l’assembleur mise en valeur.
Ceux qui souhaitent en savoir davantage pourront consulter les notes de version de GCC 7 (en anglais et en construction).