Έκδοση προγράμματος εντοπισμού σφαλμάτων 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", η έξοδος σφάλματος διακόπτεται όταν μια συνθήκη δεν είναι έγκυρη σε ορισμένα σημεία, εάν η συνθήκη ισχύει τουλάχιστον σε μία περίπτωση.
  • Προστέθηκε υποστήριξη για τον εντοπισμό σφαλμάτων πυρήνων dump που δημιουργούνται για προγράμματα Cygwin που έχουν μεταγλωττιστεί για την αρχιτεκτονική x86_64.
  • Προστέθηκε υποστήριξη για τύπους σταθερού σημείου, καθώς και για τις σταθερές DW_AT_GNU_numerator και DW_AT_GNU_denominator.
  • Προστέθηκε η ρύθμιση "startup-quietly on|off". όταν είναι "on", παρόμοια με την επιλογή "-silent".
  • Η εντολή "ptype" υλοποιεί τις επιλογές /x" και "/d" για επιλογή δεκαεξαδικού ή δεκαδικού κατά την εμφάνιση μεγεθών και μετατοπίσεων. Προστέθηκε η ρύθμιση "print type hex on|off" για χρήση δεκαεξαδικών τιμών στην έξοδο της εντολής "ptype".
  • Στην εντολή "inferior", όταν καλείται χωρίς ορίσματα, παρέχεται η έξοδος του τρέχοντος αντικειμένου εντοπισμού σφαλμάτων (inferior).
  • Η έξοδος της εντολής «πηγή πληροφοριών» έχει επεξεργαστεί εκ νέου.
  • Προστέθηκε η εντολή “style version foreground | φόντο | intensity" για τον έλεγχο του στυλ αρίθμησης εκδόσεων.
  • Προστέθηκαν νέες επιλογές γραμμής εντολών: «—early-init-command» («-eix»), «—early-init-eval-command» («-eiex»), «—qualified» (για εντολές «-break-insert ) ' και '-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() για επιστροφή του επιπέδου στοίβας για ένα αντικείμενο Frame. Όταν ενεργοποιείται ένα catchpoint, το 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).
  • Η υποστήριξη για την πλατφόρμα Symbian ARM (arm*-*-symbianelf*) έχει διακοπεί.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο