เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบ”เบตเบšเบฑเบ 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 (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โ€, เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบˆเบฐเบขเบธเบ”เป€เบกเบทเปˆเบญเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบšเบฒเบ‡เบšเปˆเบญเบ™, เบ–เป‰เบฒเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบขเปˆเบฒเบ‡เปœเป‰เบญเบเปœเบถเปˆเบ‡เบเปเบฅเบฐเบ™เบต.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging dumps เบซเบผเบฑเบเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ Cygwin เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐ x86_64.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบˆเบธเบ”เบ„เบปเบ‡เบ—เบตเปˆ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš DW_AT_GNU_numerator เปเบฅเบฐ DW_AT_GNU_denominator constants.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ โ€œstartup-quietly on|offโ€; เป€เบกเบทเปˆเบญ "เป€เบ›เบตเบ”", เบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบ "silent".
  • เบ„เปเบฒเบชเบฑเปˆเบ‡ "ptype" เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบ /x" เปเบฅเบฐ "/d" เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเป€เบฅเบเบ–เบฒเบ™เบชเบดเบšเบซเบปเบเบซเบผเบทเป€เบฅเบเบ—เบปเบ”เบชเบฐเบ™เบดเบเบปเบกเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปเบฅเบฐเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบ. เป€เบžเบตเปˆเบกเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ "เบžเบดเบก hex on|off" เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ„เปˆเบฒเป€เบฅเบเบ–เบฒเบ™เบชเบดเบšเบซเบปเบเปƒเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ 'ptype'.
  • เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ "inferior", เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡, เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ debugging เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ (inferior) เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰.
  • เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ "เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™" เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบทเบ™เปƒเบซเบกเปˆ.
  • เบ„เบณเบชเบฑเปˆเบ‡เป€เบžเบตเปˆเบก โ€œเบชเบฐเป„เบ•เบฅเปŒเป€เบงเบตเบŠเบฑเปˆเบ™เบ—เบฒเบ‡เปœเป‰เบฒ | เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบกเบฒ | เบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเบ‚เบธเป‰เบ™" เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ™เบฑเบšเป€เบฅเบเบฎเบธเปˆเบ™.
  • เป€เบžเบตเปˆเบกเบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบซเบกเปˆ: โ€œโ€”early-init-commandโ€ (โ€œ-eixโ€), โ€œโ€”early-init-eval-commandโ€ (โ€œ-eiexโ€), โ€œโ€”qualifiedโ€ (เบชเปเบฒเบฅเบฑเบš '-break-insert commands ) 'เปเบฅเบฐ '-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() เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ„เบทเบ™เบฅเบฐเบ”เบฑเบš stack เบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเบเบญเบš. เป€เบกเบทเปˆเบญเบˆเบธเบ”เบˆเบฑเบšเบ•เบปเบงเบ–เบทเบเบเบฐเบ•เบธเป‰เบ™, Python API เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒ gdb.BreakpointEvent เบ–เบทเบเบชเบปเปˆเบ‡เปเบ—เบ™ gdb.StopEvent. เป€เบžเบตเปˆเบกเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ "python ignore-environment on|off" เป€เบžเบทเปˆเบญเบšเปเปˆเบชเบปเบ™เปƒเบˆเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก เปเบฅเบฐ "python dont-write-bytecode auto|on|off" เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™ bytecode.
  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เปƒเบซเป‰ Guile API. เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบซเบกเปˆ value-reference-value, value-rvalue-reference-value เปเบฅเบฐ value-const-value เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก.
  • เบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบเบญเบšเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเบเบญเบšเบกเบตเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” GMP (GNU Multiple Precision Arithmetic).
  • เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เป€เบงโ€‹เบ—เบต ARM Symbian (เปเบ‚เบ™ *-*-symbianelf*โ€‹) เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบขเบธเบ”โ€‹เป€เบŠเบปเบฒโ€‹เบเบฒเบ™โ€‹.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™