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

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Ρ€Π΅Π»ΠΈΠ· ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° GDB 16.1 (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ выпуск сСрии 16.x, Π²Π΅Ρ‚ΠΊΠ° 16.0 использовалась для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ). GDB ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ исходных тСкстов для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра языков программирования (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust ΠΈ Ρ‚.Π΄.) Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch ΠΈ Ρ‚.Π΄.) ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… (GNU/Linux, *BSD, Unix, Windows, macOS).

НаиболСС Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:

  • Для Linux-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Π½Π° систСмах с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ LoongArch Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° записи ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ выполнСния (record/replay).
  • Для Ρ‚Π΅Π³Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡Π°ΡΡ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ² Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚ΠΎΡ‡Π΅ΠΊ останова, ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (watchpoint).
  • На систСмах с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ AArch64 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ MTE (Memory Tagging Extension). MTE Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ Ρ‚Π΅Π³ΠΈ ΠΊ областям Π² памяти ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ коррСктности использования ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ для блокирования эксплуатации уязвимостСй, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ bash-скрипт gstack, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ GDB для Π²Ρ‹Π²ΠΎΠ΄Π° трассировок стСка Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… процСссов.
  • Для Ρ‚ΠΎΡ‡Π΅ΠΊ остановка Π² состоянии оТидания (pending) ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ‘thread’ ΠΈ ‘task’ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π²ΠΎ врСмя создания Ρ‚ΠΎΡ‡ΠΊΠΈ останова, Π° Π½Π΅ послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· состояния оТидания.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° подстановка Ρ‚ΠΎΡ‡Π΅ΠΊ останова, привязанных ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Ρƒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности трассировки Π½Π° процСссорах Intel: ΠΏΡ€ΠΈ пошаговой ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… «record instruction-history» ΠΈ «record function-call-history» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π²Ρ‹Π²ΠΎΠ΄ асинхронных событий ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, сохраняСмых ΠΏΡ€ΠΈ использовании инструкции ptwrite.
  • Π’ Python API Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹: ΠΌΠΎΠ΄ΡƒΠ»ΡŒ gdb.missing_objfile, событиС gdb.tui_enabled, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ gdb.Symbol.is_artificial ΠΈ функция gdb.record.clear.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° DAP (Debugger Adapter Protocol), связанныС с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ запросов «scopes», «launch» ΠΈ «attach».
  • Π’ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² «vFile:stat» ΠΈ «x addr,length».
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° QNX Neutrino, Nios II ΠΈ Intel MPX.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru