Представен е релиз на отладчика GDB 11.1 (първото издание от серия 11.x, версия 11.0 бе използвана за разработка). GDB поддържа отладка на ниво изходен код за широк спектър от програмни езици (Ada, C, C++, Objective-C, Pascal, Go, Rust и т.н.) на различни хардуерни (i386, amd64, ARM, Power, Sparc, RISC-V и т.н.) и софтуерни платформи (GNU/Linux, *BSD, Unix, Windows, macOS).
Ключови подобрения:
- В интерфейса TUI (Text User Interface) е добавена поддръжка на действия с мишката и възможност за превъртане на съдържанието с колелото на мишката. Осигурена е пренасочване в GDB на комбинации от клавиши, които не се обработват в TUI.
- Добавена е поддръжка на механизма ARMv8.5 MTE (MemTag, Memory Tagging Extension), който позволява свързване на тагове с всяка операция по заделяне на памет и организиране на проверка на указателя по време на достъп до памет, свързан с коректния таг. В протокола за отдалечено управление на отладката за свързване на тагове с памет е осигурена поддръжка на пакетите „qMemTags“ и „QMemTags“.
- Променена е логиката за четене на конфигурационни файлове. Файлът .gdbinit сега се проверява в следния ред: $XDG_CONFIG_HOME/gdb/gdbinit, $HOME/.config/gdb/gdbinit и $HOME/.gdbinit. Тоест, първо в подкаталог config, а след това в домашния каталог.
- В командата „break […] if CONDITION“ е прекратен извода на грешка при недопустимост на условието на определени места, ако условието е допустимо поне в един случай.
- Добавена е поддръжка за отладка на core-дампове, генерирани за програми Cygwin, сглобени за архитектура x86_64.
- Добавена е поддръжка на типове с фиксирана запетая, както и константи DW_AT_GNU_numerator и DW_AT_GNU_denominator.
- Добавена е настройка „startup-quietly on|off“; когато е „on“, е аналогична на опцията „-silent“.
- В командата „ptype“ са реализирани опции /x” и “/d” за избор на шестнадесетично или десетично изчисление при извеждане на размери и отмествания. Добавена е настройка „print type hex on|off“ за използване на шестнадесетични стойности в извода на командата ‘ptype’.
- В командата „inferior“ при извикване без аргументи е осигурен извода на текущия обект за отладка (inferior).
- Преработен е извода на командата „info source“.
- Добавена е команда „style version foreground | background | intensity“ за управление на стила на номерацията на версиите.
- Добавени са нови опции за командния ред: „—early-init-command“ („-eix“), „—early-init-eval-command“ („-eiex“), „—qualified“ (за командите ‘-break-insert’ и ‘-dprintf-insert’), „—force-condition“ (за командите ‘-break-insert’ и ‘-dprintf-insert’), „—force“ (за командата ‘-break-condition’).
- В командата „-file-list-exec-source-files“ е разрешено указването на регулярни изрази за отсяване на обработваните изходни файлове. В извода е добавено поле ‘debug-fully-read’ за информираност за степента на зареждане на отладъчната информация.
- Въведени са подобрения в Python API. Добавени са нови методи gdb.Frame.level() и db.PendingFrame.level() за получаване на нивото на стека за обект Frame. При задействане на точка на улавяне (catchpoint) в Python API се осигурява предаване на gdb.BreakpointEvent вместо gdb.StopEvent. Добавени са настройки "python ignore-environment on|off" за игнориране на променливите на средата и "python dont-write-bytecode auto|on|off" за деактивиране на записването на байткод.
- Въведени са подобрения в Guile API. Добавени са нови процедури value-reference-value, value-rvalue-reference-value и value-const-value.
- Библиотеката GMP (GNU Multiple Precision Arithmetic) е включена в задължителните зависимости при компилация.
- Поддръжката на платформата ARM Symbian (arm*-*-symbianelf*) е прекратена.
Източник: opennet.ru
