GDB 11 ื“ื™ื‘ื•ื’ื’ืขืจ ืžืขืœื“ื•ื ื’

ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ 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 (ื˜ืขืงืกื˜ ื‘ืึทื ื™ืฆืขืจ ืฆื•ื‘ื™ื ื“) ื”ืื˜ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืžื•ื™ื– ืึทืงืฉืึทื ื– ืื•ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืžืขื’ื™ืœืข ืื™ื ื”ืึทืœื˜ ืžื™ื˜ ื“ื™ ืžื•ื™ื– ืจืึธื“. ืขื ื™ื™ื‘ืึทืœื“ ืคืึธืจื•ื•ืขืจื“ื™ื ื’ ืคื•ืŸ ืฉืœื™ืกืœ ืงืึทืžื‘ืึทื ื™ื™ืฉืึทื ื– ืฆื• GDB ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืคึผืจืึทืกืขืกื˜ ืื™ืŸ TUI.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ARMv8.5 MTE (MemTag, Memory Tagging Extension) ืžืขืงืึทื ื™ื–ืึทื, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ื™ื ื“ืŸ ื˜ืึทื’ืก ืฆื• ื™ืขื“ืขืจ ื–ื™ืงืึธืจืŸ ืึทืœืึทืงื™ื™ืฉืึทืŸ ืึธืคึผืขืจืึทืฆื™ืข ืื•ืŸ ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืึท ื˜ื™ื™ึทื˜ืœ ื˜ืฉืขืง ื•ื•ืขืŸ ืึทืงืกืขืก ื–ื™ืงืึธืจืŸ, ื•ื•ืึธืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืคืืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื“ื™ ืจื™ื›ื˜ื™ืง ืงื•ื•ื™ื˜ืœ. ื“ื™ ืจื™ืžืึธื•ื˜ ื“ืขื‘ื•ื’ ืงืึธื ื˜ืจืึธืœ ืคึผืจืึธื˜ืึธืงืึธืœ ื’ื™ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ "qMemTags" ืื•ืŸ "QMemTags" ืคึผืึทืงืึทื“ื–ืฉืึทื– ืคึฟืึทืจ ื‘ื™ื™ื ื“ื™ื ื’ ื˜ืึทื’ืก ืฆื• ื–ื›ึผืจื•ืŸ.
  • ื“ื™ ืœืึธื’ื™ืง ืคึฟืึทืจ ืœื™ื™ืขื ืขืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืขืก ืื™ื– ืคืืจืขื ื“ืขืจื˜. ื“ื™ .ื’ื“ื‘ื™ื ื™ื˜ ื˜ืขืงืข ืื™ื– ืื™ืฆื˜ ืึธืคึผื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืกื“ืจ: $XDG_CONFIG_HOME/gdb/gdbinit, $HOME/.config/gdb/gdbinit ืื•ืŸ $HOME/.gdbinit. ื™ืขื ืข. ืขืจืฉื˜ืขืจ ืื™ืŸ ื“ื™ ืงืึธื ืคื™ื’ ืกื•ื‘ื“ื™ืจืขืงื˜ืึธืจื™, ืื•ืŸ ื‘ืœื•ื™ื– ื“ืขืžืึธืœื˜ ืื™ืŸ ื“ื™ ื”ื™ื™ื ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ.
  • ืื™ืŸ ื“ื™ "ื‘ืจืขื›ืŸ [โ€ฆ] ืื•ื™ื‘ CONDITION" ื‘ืึทืคึฟืขืœ, ื“ืขืจ ื˜ืขื•ืช ืจืขื–ื•ืœื˜ืึทื˜ ืื™ื– ืกื˜ืึทืคึผื˜ ื•ื•ืขืŸ ืึท ืฆื•ืฉื˜ืึทื ื“ ืื™ื– ืคืึทืจืงืจื™ืคึผืœื˜ ืื™ืŸ ื–ื™ื›ืขืจ ืขืจื˜ืขืจ, ืื•ื™ื‘ ื“ื™ ืฆื•ืฉื˜ืึทื ื“ ืื™ื– ื’ื™ืœื˜ื™ืง ืื™ืŸ ืœืคึผื—ื•ืช ืื™ื™ืŸ ืคืึทืœ.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ื‘ืึทื’ื™ื ื’ ื”ืึทืจืฅ ื“ืึทืžืคึผืก ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืคึฟืึทืจ Cygwin ืžื’ื™ืœื” ืงืึทืžืคึผื™ื™ืœื“ ืคึฟืึทืจ ื“ื™ x86_64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืคืึทืจืคืขืกื˜ื™ืงื˜-ืคื•ื ื˜ ื˜ื™ื™ืคึผืก, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื“ื™ DW_AT_GNU_numerator ืื•ืŸ DW_AT_GNU_denominator ืงืึทื ืกื˜ืึทื ืฅ.
  • ืฆื•ื’ืขื’ืขื‘ืŸ "ืกื˜ืึทืจื˜ืึทืคึผ-ืฉื˜ื™ืœ ืื•ื™ืฃ | ืึทื•ื•ืขืง" ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ; ื•ื•ืขืŸ "ืื•ื™ืฃ", ืขื ืœืขืš ืฆื• ื“ื™ "-ืฉื˜ื™ืœ" ืึธืคึผืฆื™ืข.
  • ื“ื™ "ืคึผื˜ื™ืคึผืข" ื‘ืึทืคึฟืขืœ ื™ืžืคึผืœืึทืžืึทื ืฅ ื“ื™ / x "ืื•ืŸ "/ ื“" ืึธืคึผืฆื™ืขืก ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื”ืขืงืกืึทื“ืขืกื™ืžืึทืœ ืึธื“ืขืจ ื“ืขืฆื™ืžืึทืœ ื•ื•ืขืŸ ื•ื•ื™ื™ึทื–ื ื“ื™ืง ืกื™ื–ืขืก ืื•ืŸ ืึธืคืกืขืฅ. ืฆื•ื’ืขืœื™ื™ื’ื˜ "ืคึผืจื™ื ื˜ ื˜ื™ืคึผ ื”ืขืงืก ืื•ื™ืฃ | ืึทื•ื•ืขืง" ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืฆื• ื ื•ืฆืŸ ื”ืขืงืกืึทื“ืขืกื™ืžืึทืœ ื•ื•ืึทืœื•ืขืก ืื™ืŸ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ 'ืคึผื˜ื™ืคึผืข' ื‘ืึทืคึฟืขืœ.
  • ืื™ืŸ ื“ื™ "ืขืจื’ืขืจ" ื‘ืึทืคึฟืขืœ, ื•ื•ืขืŸ ื’ืขืจื•ืคืŸ ืึธืŸ ืึทืจื’ื•ืžืขื ื˜ืŸ, ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืงืจืึทื ื˜ ื“ื™ื‘ืึทื’ื™ื ื’ ื›ื™ื™ืคืขืฅ (ืขืจื’ืขืจ) ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜.
  • ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ "ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืžืงื•ืจ" ื‘ืึทืคึฟืขืœ ืื™ื– ืจื™ื•ื•ืขืจืงื˜.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ื‘ืึทืคึฟืขืœ "ื ื•ืกื— ื•ื•ืขืจืกื™ืข ืคืึธืจื’ืจืึทื•ื ื“ | ื”ื™ื ื˜ืขืจื’ืจื•ื ื˜ | ื™ื ื˜ืขื ืกื™ื˜ื™" ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื•ื•ืขืจืกื™ืข ื ืึทืžื‘ืขืจื™ื ื’ ื ื•ืกื—.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึท ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ืึธืคึผืฆื™ืขืก: "-ืคืจื™-ื™ื ื™ื˜-ืงืึทืžืึทื ื“" ("-ืขื™ืงืก"), "-ืคืจื™-ื™ื ื™ื˜-ืขื•ื•ืึทืœ-ืงืึทืžืึทื ื“" ("-ืขื™ืขืงืก"), "-ืงื•ื•ืึทืœืึทืคื™ื™ื“" (ืคึฟืึทืจ '-ื‘ืจืขืึทืง-ื™ื ืกืขืจื˜ ืงืึทืžืึทื ื“ื–) ) ' ืื•ืŸ '-dprintf-insert'), "--force-condition" (ืคึฟืึทืจ ื“ื™ '-break-insert' ืื•ืŸ '-dprintf-insert' ืงืึทืžืึทื ื“ื–), "--force" (ืคึฟืึทืจ ื“ื™ '-break-condition) ' ื‘ืึทืคึฟืขืœ).
  • ื“ืขืจ ื‘ืึทืคึฟืขืœ "-file-list-exec-source-files" ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืจืขื’ื•ืœืขืจ ืื•ื™ืกื“ืจื•ืงืŸ ืฆื• ืคื™ืœื˜ืขืจ ืžืงื•ืจ ื˜ืขืงืขืก ืฆื• ื–ื™ื™ืŸ ืคึผืจืึทืกืขืกื˜. ื 'ื“ืขื‘ื•ื’-ืคื•ืœ-ืœื™ื™ืขื ืขืŸ' ืคืขืœื“ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืฆื• ืึธื ื•ื•ื™ื™ึทื–ืŸ ื“ื™ ืžืึธืก ืื™ืŸ ื•ื•ืึธืก ื“ื™ื‘ืึทื’ื™ื ื’ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ื– ืœืึธื•ื“ื™ื“.
  • ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ืฆื• ื“ื™ Python API. ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึทืข ืžืขื˜ื”ืึธื“ืก gdb.Frame.level() ืื•ืŸ db.PendingFrame.level() ืฆื• ืฆื•ืจื™ืงืงื•ืžืขืŸ ื“ื™ ืึธื ืœื™ื™ื’ืŸ ืžื“ืจื’ื” ืคึฟืึทืจ ืึท ืคืจื™ื™ื ื›ื™ื™ืคืขืฅ. ื•ื•ืขืŸ ืึท ืงืึทื˜ืฉืคึผืึธื™ื ื˜ ืื™ื– ื˜ืจื™ื’ืขืจื“, ื“ื™ Python API ื™ื ืฉื•ืจื– ืึทื– gdb.BreakpointEvent ืื™ื– ื’ืขืฉื™ืงื˜ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ gdb.StopEvent. ืฆื•ื’ืขืœื™ื™ื’ื˜ ืกืขื˜ื˜ื™ื ื’ืก "ืคึผื™ื˜ื”ืึธืŸ ืื™ื’ื ืึธืจื™ืจืŸ-ืกื‘ื™ื‘ื” ืื•ื™ืฃ|ืึทื•ื•ืขืง" ืฆื• ืื™ื’ื ืึธืจื™ืจืŸ ื™ื ื•ื•ื™ื™ืจืึทื ืžืขื ืึทืœ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื•ืŸ "ืคึผื™ื˜ื”ืึธืŸ ื˜ืึธืŸ ื ื™ื˜-ืฉืจื™ื™ื‘-ื‘ื™ื˜ืขืงืึธื“ืข ืึทื•ื˜ืึธ|ืื•ื™ืฃ|ืึทื•ื•ืขืง" ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ ื‘ื™ื™ื˜ืขืงืึธื“ ืฉืจื™ื™ื‘ืŸ.
  • ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ืฆื• ื“ื™ Guile API. ื ื™ื• ืคึผืจืึธื•ืกื™ื“ื–ืฉืขืจื– ื•ื•ืขืจื˜-ืจืขืคืขืจืขื ืฅ-ื•ื•ืขืจื˜, ื•ื•ืขืจื˜-ืจื•ื•ืึทืœื•-ืจืขืคืขืจืขื ืฅ-ื•ื•ืขืจื˜ ืื•ืŸ ื•ื•ืขืจื˜-ืงืึธื ืกื˜-ื•ื•ืขืจื˜ ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ.
  • ื“ื™ ืคืืจืœืื ื’ื˜ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืึทืจื™ื™ึทื ื ืขืžืขืŸ ื“ื™ GMP (GNU Multiple Precision Arithmetic) ื‘ื™ื‘ืœื™ืึธื˜ืขืง.
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ARM Symbian ืคึผืœืึทื˜ืคืึธืจืžืข (ืึทืจื *-*-symbianelf*) ืื™ื– ืึธืคึผื’ืขืฉื˜ืขืœื˜.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’