Представлено реліз відладчика GDB 12.1 (перший випуск серії 12.x, гілка 12.0 використовувалася для розробки). GDB підтримує налагодження на рівні вихідних текстів для широкого спектру мов програмування (Ada, C, C++, Objective-C, Pascal, Go, Rust і т.д.) на різних апаратних (i386, amd64, ARM, Power, Sparc, RISC- V і т.д.) та програмних платформах (GNU/Linux, *BSD, Unix, Windows, macOS).
Ключові покращення:
- За замовчуванням увімкнено багатопоточний режим завантаження символів налагодження, що прискорює запуск.
- Поліпшено підтримку шаблонів C++.
- Реалізовано підтримку роботи на платформі FreeBSD в асинхронному режимі (async).
- Надано можливість відключення використання GNU Source Highlight та задіяння для підсвічування синтаксису бібліотеки Pygments.
- У команді «clone-inferior» реалізовано перевірку копіювання налаштувань TTY, CMD та ARGS з оригінального об'єкта налагодження (inferior) на новий об'єкт налагодження. Також забезпечено копіювання до нового об'єкта налагодження всіх змін змінних оточення, виконаних за допомогою команд 'set environment' або 'unset environment'.
- У команді «print» реалізовано підтримку виведення чисел з плаваючою комою із зазначенням формату базового значення, наприклад, у шістнадцятковому вигляді («/x»).
- Додано підтримку запуску відладчика та GDBserver на архітектурі GNU/Linux/OpenRISC (or1k*-*-linux*). Додано підтримку налагодження програм для цільової платформи GNU/Linux/LoongArch (loongarch*-*-linux*). Припинено підтримку цільової платформи S+core (score-*-*).
- GDB 12 оголошено останнім випуском для якого підтримується збирання з використанням Python 2.
- Оголошено застарілим і буде видалено у гілці GDB 13 режим сумісності з DBX.
- У програмному інтерфейсі керування GDB/MI дозволено застосування команди '-add-inferior' без параметрів або разом із прапором '—no-connection' для успадкування з'єднання з поточного об'єкта налагодження або запуску без з'єднання.
- Внесено покращення в Python API. Надано можливість реалізації команд GDB/MI мовою Python. Додані нові події gdb.events.gdb_exiting та gdb.events.connection_removed, функція gdb.Architecture.integer_type(), об'єкт gdb.TargetConnection, властивість gdb.Inferior.connection, метод gdb.RemoteTargetConnection.send_packet та атрибути gdb. gdb.Type.is_scalar та gdb.Type.is_signed.
Джерело: opennet.ru