Defekt-Analyse

Defekt-Analyse


Die Defekt-Analyse überprüft den Source Code auf mögliche Laufzeitfehler. Die Analysen enthalten skalierbare Daten- und Kontrollflussprüfungen. Mit diesen können Fehler wie Out-of-bounds-Zugriffe oder Division durch Null frühzeitig erkannt werden.    

  • NULL dereferences 
  • uninitialized variables
  • unused definitions
  • escaping addresses of local variables 
  • violations of exception specificationsexc
  • exceptions during stack unwinding
  • uncaught exceptions
  • dead catch blocks
  • memory leaks from new/malloc without delete/free 
  • mismatched resource allocations/releases
  • double free

 

  • use after free
  • divisions by zero
  • constant conditions
  • array access out of bounds
  • overflow in arithmetic computation
  • comparison/subtraction of unrelated pointers
  • assignment of bad values to enum-typed variables
  • forbidden operations on resources
  • forbidden argument values
  • resources used for reading and writing at the same time

Das Bild zeigt neben Stilverstößen bezüglich AUTOSAR C++14 auch zwei behobene Verstöße der Defekt-Analyse aus der Zeit von März bis Juni. FaultDetection-RemovableStatements prüft ob ein Statement oder eine Deklaration entfernt werden können, da diese nicht zum Funktionsergebnis beitragen. FaultDetection-UnusedAssignments prüft auf Zuweisungen zu Variablen, welche nicht genutzt werden.