GDB 18.1 apporte le débogage non-stop sous Windows et abandonne stabs
GDB 18.1, sorti le 25 septembre, apporte le débogage non-stop sous Windows 10+, de nouvelles commandes save et d'environnement, et retire l'ancien format stabs.
4 min de lecture

Le projet GNU a publié le 25 septembre 2026 la version 18.1 de GDB, son débogueur en ligne de commande. Les principaux changements concernent Windows, qui gagne le débogage non-stop sous Windows 10 et versions ultérieures. Cette version retire aussi plusieurs anciens formats de débogage. Certaines compilations anciennes ne se chargeront donc plus correctement.
GDB permet de mettre en pause un programme en cours d'exécution, de l'exécuter ligne par ligne et d'inspecter ses variables. Il prend en charge Ada, C, C++, Fortran, Go, Rust et de nombreux autres langages. Les changements ci-dessous proviennent de l'annonce officielle de la version sur la liste de diffusion gdb-announce, avec des détails complémentaires tirés de l'article de LWN.
Ce qui change pour les développeurs Windows
Selon l'annonce, c'est Windows qui reçoit le plus d'améliorations dans GDB 18.1. La cible Windows native, c'est-à-dire GDB déboguant un programme sur la même machine Windows, prend désormais en charge le mode non-stop sous Windows 10 et versions ultérieures.
En mode non-stop, un thread s'arrête sur un point d'arrêt pendant que les autres threads du programme continuent de tourner. C'est important pour les serveurs et les applications graphiques. Figer tous les threads d'un coup peut y masquer le bogue que l'on traque. Windows gagne aussi le scheduler-locking. Cette fonction détermine si les autres threads peuvent tourner pendant que l'on exécute un thread pas à pas.
GDB sous Windows sait aussi lire les variables en stockage local de thread (TLS). Ce sont des variables qui ont une valeur distincte pour chaque thread. L'annonce cite également la couleur 24 bits dans Windows Terminal, avec le texte UTF-8 et les emoji. Les chemins de fichiers s'affichent désormais toujours avec des barres obliques.
Nouvelles commandes de GDB 18.1
La version ajoute plusieurs commandes, citées à la fois dans l'annonce et dans le résumé de LWN :
| Commande | Rôle |
|---|---|
set/show/unset local-environment | Gérer l'environnement du programme débogué |
save history | Écrire l'historique des commandes dans un fichier |
save skip | Enregistrer la liste des fonctions et fichiers que GDB saute en pas à pas |
save user | Enregistrer les commandes définies par l'utilisateur |
set/show progress-bars enabled | Activer ou désactiver les barres de progression |
info proc environ | Afficher les variables d'environnement d'un processus Linux |
Une nouvelle option --no-escape-args transmet les arguments du programme sans les échapper. Les arguments contenant des retours à la ligne fonctionnent désormais s'ils sont entre guillemets. Pour les cibles extended-remote, où GDB pilote un programme sur une autre machine, GDB définit maintenant automatiquement le fichier exécutable distant.
LWN note aussi que info locals signale désormais les variables qui en masquent une autre du même nom. La commande indique aussi où chaque variable est stockée.
API Python et nouvelles cibles
GDB peut être piloté par des scripts Python, et la version 18.1 étend cette interface. L'annonce cite une nouvelle classe gdb.Corefile pour travailler avec les core dumps. Ce sont les instantanés mémoire qu'un programme laisse derrière lui en plantant. Elle ajoute aussi une classe gdb.Style et deux nouveaux registres d'événements, selected_context et corefile_changed. Le désassemblage produit depuis Python peut désormais être stylisé.
Deux nouvelles cibles arrivent. GNU/Linux sur MicroBlaze, une petite architecture de processeur utilisée dans les puces FPGA, est pris en charge via gdbserver. AArch64 MinGW, c'est-à-dire Windows sur Arm 64 bits compilé avec la chaîne d'outils MinGW, est aussi pris en charge. LWN ajoute qu'AArch64 prend désormais en charge son registre de mode virgule flottante, appelé FPMR.
Ce que GDB 18.1 supprime
Selon l'annonce, GDB 18.1 abandonne une série d'anciens formats et plateformes :
- Les formats de débogage stabs, mdebug et dbx
- Le Common Trace Format
- Les anciennes versions de la section
.gdb_index, un index qui accélère le chargement des symboles - La version 1 de DWP, le format de paquet pour les fichiers de débogage séparés
- AIX 7.1
- La cible s390 32 bits
Côté améliorations, les sections .gdb_index incluent désormais les symboles de type, ce qui aide GDB à trouver les types plus vite. Le code source est disponible sur le serveur FTP de GNU, sous forme d'un fichier .tar.xz de 22 Mio ou d'un fichier .tar.gz de 37 Mio.
Ce que cela signifie pour les développeurs
Vérifiez vos options de compilation avant de mettre à jour. Stabs est un format de débogage antérieur à DWARF, le standard que produisent aujourd'hui la plupart des compilateurs. La plupart des chaînes d'outils modernes ont cessé d'utiliser stabs depuis longtemps. Mais une vieille chaîne d'outils embarquée ou un script de compilation hérité passe peut-être encore -gstabs. Dans ce cas, GDB 18.1 ne lira plus ces informations de débogage, et il faut d'abord passer à DWARF.
Il en va de même pour les configurations à débogage séparé. Si votre équipe conserve encore des fichiers .dwp à l'ancien format version 1, reconstruisez-les avant de passer à 18.1. Régénérez aussi les sections .gdb_index créées par un ancien GDB. Le nouveau format d'index inclut aussi les types, la reconstruction vaut donc la peine de toute façon.
Les développeurs Windows qui avaient renoncé à GDB pour du code multithread devraient le réessayer. Le mode non-stop associé au scheduler-locking permet d'arrêter un thread de travail sans figer le reste du programme.
Si vous tenez un fichier .gdbinit rempli de commandes personnalisées, essayez save user pour les sauvegarder. Utilisez ensuite save history pour qu'une longue session de débogage ne soit pas perdue à la fermeture de GDB. Les équipes qui construisent des outils sur l'API Python de GDB devraient regarder gdb.Corefile pour les scripts qui trient des vidages de plantage.
En attendant que votre distribution Linux empaquette la version 18.1, vous pouvez la compiler depuis l'archive source du serveur FTP de GNU.
Sources
- GDB 18.1 released! - Sourceware gdb-announce
- GDB 18.1 released - LWN.net
Articles liés

Une faille XSS dans les logs de build de SourceHut permettait de pirater des comptes
Un log de build piégé pouvait exécuter un script dans le navigateur d'un utilisateur de SourceHut. ansi2html 1.9.4 corrige la faille CVE-2026-92973, qui touchait les versions 1.7.0 à 1.9.3.

Wine 11.18 gère les pilotes noyau, Staging corrige WoW64
Wine 11.18 est sorti le 18 septembre avec 380 commits et 21 corrections. Wine-Staging porte 273 correctifs de plus, dont deux pour les services WoW64.

ReactOS 0.4.16 livre un installateur graphique et une synchro Wine 10
ReactOS 0.4.16 est sorti le 29 août 2026 après environ 18 mois et 2 808 commits. Il ajoute un installateur graphique, un nouveau pilote ATA et une synchronisation avec Wine 10.