Выпуск ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° GDB 14

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Ρ€Π΅Π»ΠΈΠ· ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° 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