Η νέα έκδοση του cppcheck 2.6 έχει ήδη κυκλοφορήσει και αυτά είναι τα νέα της

Η απελευθέρωση του την έκδοση του στατικού αναλυτή κώδικα cppcheck 2.6Ότι επιτρέπει την ανίχνευση διαφόρων ειδών σφαλμάτων στον κώδικα C και C ++ακόμη και όταν χρησιμοποιείτε τυπική σύνταξη τυπική για ενσωματωμένα συστήματα.

Παρέχεται μια συλλογή πρόσθετων μέσω των οποίων παρέχεται η ενσωμάτωση του cppcheck με διάφορα συστήματα ανάπτυξης, συνεχούς ολοκλήρωσης και δοκιμών, καθώς και χαρακτηριστικά όπως ο έλεγχος της συμμόρφωσης του κώδικα με το στυλ κωδικοποίησης.

Για να αναλύσετε τον κώδικα, μπορείτε να χρησιμοποιήσετε τόσο τον δικό σας αναλυτή όσο και έναν εξωτερικό αναλυτή ClangΤο Περιλαμβάνει επίσης ένα σενάριο donate-cpu.py για την παροχή τοπικών πόρων για συνεργατική εργασία αναθεώρησης κώδικα για πακέτα Debian.

Η ανάπτυξη του cppcheck επικεντρώνεται στον εντοπισμό προβλημάτων που σχετίζονται με απροσδιόριστη συμπεριφορά και τη χρήση κατασκευών που είναι επικίνδυνες από την άποψη της ασφάλειας.

Ο στόχος είναι επίσης να ελαχιστοποιηθούν τα ψευδώς θετικάΤο Μεταξύ των προβλημάτων που εντοπίστηκαν: δείκτες σε ανύπαρκτα αντικείμενα, διαίρεση με το μηδέν, υπερχειλίσεις ακεραίων, λανθασμένες λειτουργίες μετατόπισης bit, λανθασμένες μετατροπές, προβλήματα μνήμης, εσφαλμένη χρήση STL, κατάργηση αναφοράς μηδενικών δεικτών, εφαρμογή ελέγχων μετά από πραγματική πρόσβαση σε buffer, ξεπερνώντας τα όρια του buffer, χρησιμοποιώντας μη αρχικοποιημένες μεταβλητές.

Κύρια νέα χαρακτηριστικά του cppcheck 2.6

Σε αυτήν τη νέα έκδοση sε έχουν προσθέσει διάφορους ελέγχους στον πυρήνα του αναλυτή, μεταξύ των οποίων ξεχωρίζει η επαλήθευση της απουσίας δήλωσης επιστροφής στο σώμα της συνάρτησης, καθώς και η αλληλεπικάλυψη εγγραφών δεδομένων, οι απροσδιόριστοι ορισμοί συμπεριφοράς, καθώς και η επαλήθευση για την τιμή που συγκρίνεται είναι εκτός του εύρους της αναπαράστασης την τιμή τύπου.

Μια άλλη καινοτομία που ξεχωρίζει είναι η η βελτιστοποίηση αντιγραφής δεν ισχύει για την επιστροφή std :: move (τοπική)., προστέθηκε υποστήριξη για την εμφάνιση διαγνωστικών μηνυμάτων σε διαφορετικά χρώματα για πλατφόρμες Unix και ότι η ετικέτα βιβλιοθήκης μπορεί τώρα να περιέχει μια ετικέτα για έξυπνους δείκτες που έχουν μοναδική ιδιότητα. Η προειδοποίηση για παραλλαγή συνδέσμου εκδίδεται τώρα σε αυτού του είδους τους έξυπνους δείκτες.

Επιπλέον, Οι έλεγχοι Misra C 2012 έχουν εφαρμοστεί πλήρως, συμπεριλαμβανομένης της τροπολογίας 1 και της τροπολογίας 2, εκτός από τους κανόνες 1.1, 1.2 και 17.3. Ο μεταγλωττιστής πρέπει να εκτελέσει ελέγχους 1.1 και 1.2. Ένας μεταγλωττιστής όπως το GCC μπορεί να ελέγξει 17.3.

Από τις άλλες αλλαγές που ξεχωρίζουν αυτής της νέας έκδοσης:

  • Το αρχείο δεν μπορεί να ανοίξει ταυτόχρονα για ανάγνωση και εγγραφή σε διαφορετικές ροές.
  • Προστέθηκε συμβολική ανάλυση για το ValueFlow. Χρησιμοποιείται ένα απλό δέλτα κατά τον υπολογισμό της διαφοράς μεταξύ δύο άγνωστων μεταβλητών.
  • Οι κανόνες που χρησιμοποιούνται για τη λίστα συμβόλων "καθορίστε" μπορούν επίσης να ταιριάζουν με το #include.
  • Η ετικέτα της βιβλιοθήκης μπορεί τώρα να περιέχει μια ετικέτα και επομένως δωρεάν συναρτήσεις που μπορούν να δεχτούν κοντέινερ όπως std :: size, std :: κενό, std :: begin, std :: end κ.λπ. μπορείτε να καθορίσετε το yeld ή την ενέργεια για τα κοντέινερ.
  • Διορθώθηκαν προβλήματα με τον χειρισμό της παραμέτρου –cppcheck-build-dir.
    Η htmlreport μπορεί τώρα να εκτυπώσει πληροφορίες σχετικά με τον συγγραφέα (χρησιμοποιώντας git sûc).
  • Εκτεταμένη έκδοση προειδοποιήσεων για μεταβλητές που δεν είναι σταθερές, αλλά μπορούν να γίνουν σταθερές.
  • Τα σωρευμένα σφάλματα και οι ελλείψεις του αναλυτή διορθώθηκαν.

Τέλος, εάν ενδιαφέρεστε να μάθετε περισσότερα για αυτήν τη νέα έκδοση, μπορείτε να συμβουλευτείτε τις λεπτομέρειες στον παρακάτω σύνδεσμο.

Πώς να εγκαταστήσετε το cppcheck στο Linux;

Για όσους ενδιαφέρονται να μπορούν να εγκαταστήσουν το cppcheck στη διανομή Linux, μπορούν να ακολουθήσουν τις οδηγίες που μοιραζόμαστε παρακάτω.

Εάν είστε χρήστης του Debian ή οποιαδήποτε άλλη διανομή βασίζεται ή προέρχεται από αυτήν, όπως το Deepin ή το Ubuntu, μπορείτε να εγκαταστήσετε απευθείας από το τερματικό πληκτρολογώντας την ακόλουθη εντολή:

sudo apt-get install cppcheck

Τώρα για όσους είναι χρήστες του Fedora και αυτοί που προέρχονται από αυτό, μπορούν να εκτελέσουν την εγκατάσταση πληκτρολογώντας την ακόλουθη εντολή:

sudo yum instalar cppcheck

Or για όσους είναι χρήστες του Arch Linux ή οποιοδήποτε άλλο παράγωγό του, μπορούν να εγκαταστήσουν με την ακόλουθη εντολή:

sudo pacman -S cppcheck


Γίνε ο πρώτος που θα σχολιάσει

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.