Kontrollflussanalyse und formale Begriffsanalyse von C-Code aus Software-Produktlinien mit Variabilitätsmanagement durch den Präprozessor
Dierk Lüdemann
Statische Quelltextanalyse unterstützt Programmierer in vielen Bereichen ihrer Arbeit. Kommt jedoch der Präprozessor der Programmiersprache C zum Einsatz, so stößt die statische Analyse schnell an ihre Grenzen. Eine Betrachtung aller Varianten nach dem Präprozessordurchlauf scheitert meist an der kombinatorischen Explosion durch die vielen Konfigurationspunkte einer Software-Produktlinie, wie dem Linux-Kernel, deren Variabilität durch den Präprozessor bereitgestellt wird. In diesem Werk wird sich der Herausforderung angenommen, jegliche Formen des Einsatzes des Präprozessors zu berücksichtigen, während die vollständige Variabilität präserviert wird. Dazu wird ein Verfahren vorgestellt, mit dem der Kontrollfluss von Quelltext berechnet werden kann, ohne dass jede Variante einzeln betrachtet werden muss. Außerdem wird die formale Begriffsanalyse verwendet, um den Linux-Kernel zu untersuchen. Mit dieser Form der statischen Analyse werden verborgene Zusammenhänge zwischen Präprozessorvariablen sichtbar.