GDB 18.1 est disponible (première version de la série 18.x, la branche 18.0 ayant été utilisée pour le développement). GDB prend en charge le débogage au niveau du code source pour un large éventail de langages de programmation (C, C++, D, Go, Objective-C, Fortran, OpenCL C, Pascal, Rust, assembleur, Modula-2 et Ada) sur diverses architectures matérielles (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch, etc.) et logicielles (GNU/SWIFT).Linux, *BSD, Unix, Windows, macOS).
Les améliorations les plus notables :
- Ajout de la prise en charge des plateformes GNU/LinuxLinuxMicroBlaze (microblazeel-*linux*) et AArch64 MinGW (aarch64-*-mingw*) sont pris en charge. L'architecture s390 32 bits (s390-*) est obsolète et sa suppression est prévue.
- Pour plateforme Windows La prise en charge du mode « non-stop » a été implémentée (pour Windows 10 et versions ultérieures), le verrouillage du planificateur avec la commande « set schedule-locking on » et les variables TLS (Thread Local Storage) natives. Lors de l'exécution dans Windows Le terminal prend désormais en charge les couleurs 24 bits, les émojis et l'encodage UTF-8. Les interfaces CLI, TUI, MI et DAP normalisent désormais les barres obliques dans les chemins de fichiers (en utilisant systématiquement C:/proj/src/main.c au lieu de C:/proj/src\main.c).
- Pour résoudre les problèmes liés aux recherches de types, tous les symboles de type de débogage sont désormais ajoutés à l'index .gdb_index.
- La commande « info locals » affiche désormais l’annotation « shadowed » pour les variables externes écrasées par des variables internes du même nom. Une option « set print shadowed on|off » a été ajoutée pour contrôler l’affichage.
- Les commandes « set args », « run », « start » et « starti » prennent désormais en charge le passage d'arguments contenant des caractères de nouvelle ligne entre guillemets.
- GDB et gdbserver disposent désormais d'une option « --no-escape-args » permettant de désactiver l'échappement des caractères spéciaux dans les arguments.
- Pour l'architecture AArch64, la prise en charge du registre FPMR (Floating Point Mode Register) a été implémentée.
- Ajout d'une prise en charge initiale du chargement des fichiers principaux générés sur les systèmes compatibles Intel AMX.
- Ajout de la prise en charge du traçage des événements gérés par la bibliothèque libipt 2.2.
- Lors du débogage via le port série, la possibilité de spécifier des débits de transmission non standard a été ajoutée.
- La commande d'aide a été mise à jour pour inclure un mode « essentiel », offrant un aperçu de l'ensemble minimal de commandes dont un nouvel utilisateur de GDB pourrait avoir besoin.
- Commandes ajoutées :
- set/show/unset local-environment - analogue de "set/show/unset environment", qui affecte l'environnement des sous-processus lancés par GDB lui-même (par exemple, via un shell ou un tube).
- Enregistrer l'historique, ignorer les opérations, enregistrer l'utilisateur — enregistre l'historique des commandes, ignore les opérations et enregistre les commandes utilisateur dans un fichier.
- info proc environ - affiche les variables d'environnement du processus.
- activer/afficher les barres de progression — contrôle l'affichage des barres de progression.
- supprimer ignorer, activer ignorer, désactiver ignorer — alias des commandes supprimer/activer/désactiver l'option « skip ».
- set/show debug gnu-ifunc et set/show debug ctf.
- La prise en charge de la première version du format DWP (DWARF Package File), ainsi que des formats d'informations de débogage stabs et mdebug, a été supprimée. L'enregistrement des résultats de traçage au format CTF (Common Trace Format) est désormais abandonné.
- La prochaine version prévoit de séparer les modes Windows ABI GNU (pour le code généré via la chaîne d'outils MinGW) et MSVC (pour le code compilé par les compilateurs MSVC et Clang). Sélectionner Windows Dans la commande « set osabi », vous devrez spécifier les valeurs de l'ABI.Windows-GNU" et "Windows-MSVC". La valeur actuellement utilisée Windows sélectionnera automatiquement le mode requis en fonction de l'argument "--target" (--target=x86_64-pc-windows-msvc ou --target=x86_64-w64-mingw32).
Source: opennet.ru
