Представен е релиза на отладчика GDB 14.1 (първото издание от серия 14.x, клон 14.0 е използван за разработка). GDB поддържа отладка на ниво изходен код за широк спектър от програмни езици (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust и др.) на различни хардуерни (i386, amd64, ARM, Power, Sparc, RISC-V и др.) и софтуерни платформи (GNU/Linux, *BSD, Unix, Windows, macOS).
Ключови подобрения:
- Кодовата база е обновена за използване на стандарта C++17. За компилиране на GDB сега е необходим компилатор, който поддържа C++17 (поне GCC 9).
- В индекса е добавена информация за функцията main, което позволява ускоряване на стартирането при работа с някои големи изпълними файлове.
- Поддръжката на операционни системи AIX 4.x, 5.x и 6.x е прекратена (минимално поддържаната версия на AIX е версия 7.1).
- Добавена е начална вградена поддръжка за протокола DAP (Debugger Adapter Protocol).
- Добавена е поддръжка за променливата среда NO_COLOR.
- Добавена е начална поддръжка за цели типове, с размери над 64 бита.
- Добавена е поддръжка за точки на прекъсване, свързани с отделни отладъчни обекти (при отладка на множество процеси).
- Добавена е функцията «$_shell» за изпълнение на команда в командния интерпретатор и връщане на резултата.
- Направени са подобрения в Python API:
- Добавени са класовете gdb.Thread, gdb.unwinder.FrameId и gdb.ValuePrinter.
- Добавени са атрибутите gdb.Inferior.arguments, gdb.Inferior.main_name, gdb.Breakpoint.inferior, gdb.Progspace.symbol_file, gdb.Progspace.executable_filename.
- Добавени са функциите gdb.execute_mi(COMMAND, [ARG]…), gdb.block_signals().
- Добавени са методите gdb.Frame.static_link, gdb.Inferior ‘clear_env’, ‘set_env’ и ‘unset_env’, gdb.Type ‘is_array_like’ и ‘is_string_like’, gdb.Value ‘assign’, gdb.Value ‘to_array’, gdb.Progspace ‘objfile_for_address’, gdb.LazyString __str__. Добавени са събития gdb.ThreadExitedEvent, gdb.ExecutableChangedEvent, gdb.NewProgspaceEvent, gdb.FreeProgspaceEvent.
- Добавена е възможността за активиране и деактивиране на отделни функции за отдалечени отладъчни цели.
- Подобрена е поддръжката на архитектурата AArch64. Добавена е поддръжка за разширенията SME (Scalable Matrix Extension) и SME2.
- Подобрена е поддръжката на езика Ada и спецификацията Ada 2022.
- В командата ‘list’ е добавена поддръжка за аргумента ‘.’ за извеждане на местоположението на точката на изпълнение в текущия стек кадър.
- В командите printf и dprintf е добавен спецификаторът на формата ‘%V’.
- В командата printf размерът на низът, извлечен от отладъчния обект, е ограничен до стойността на настройката ‘max-value-size’.
- Добавена е опцията за сборка «—additional-debug-dirs=PATH», която задава стойност по подразбиране за параметъра ‘debug-file-directory’.
- Добавена е нова команда «info main» за извличане на символа main, указващ точката на влизане в програмата.
- Добавени са нови команди:
- «set debug breakpoint on|off»
- «set tui mouse-events [on|off]»
- «set always-read-ctf on|off»
- «maintenance print record-instruction [ N ]»
- «maintenance info frame-unwinders»
- «maintenance wait-for-index-cache»
Източник: opennet.ru
