Zum Inhalt
Fakultät für Informatik
Einblicke in PhASAR

Zwei Arbeiten akzeptiert im Engineering Track der IEEE SCAM

© Schubert, Sattler, Schiebel, Hermann, Bodden

Wir geben Einblicke in unsere Designentscheidungen und unseren Umgang mit Globals in C/C++-Programmen. Dies ermöglichte es uns, über die fünfjährige Entwicklungsgeschichte von PhASAR zu berichten und viele beteiligte Personen zu Wort kommen zu lassen.

PhASAR ist unser statisches Datenflussanalyse-Framework, das in C++ für die Analyse von C/C++-Programmen geschrieben wurde. Es basiert auf der LLVM-Infrastruktur. Aufgrund der einzigartigen Eigenschaften der C/C++-Sprachfamilie, wie z. B. beliebige Pointer auf den Speicher, unsichere Typsysteme oder Mehrfachvererbung, stellt die statische Programmanalyse für diese Sprachfamilie eine besondere Herausforderung dar. Wir haben PhASAR im Jahr 2018 als Open-Source-Projekt veröffentlicht und seither zahlreiche Anfragen und Pull-Requests aus Wissenschaft und Industrie erhalten. Es hat derzeit über 600 Sterne auf GitHub. 

Im ersten Papier berichten wir über die wichtigsten Fehler, die wir in den ersten Jahren von PhASAR gemacht haben, sowie unsere Strategien, um sie zu korrigieren und zu einer zuverlässigeren Architektur für das Framework zu kommen. Wir leiten daraus einige Richtlinien für die Entwicklung zukünftiger statischer Analyse-Frameworks ab. 

Im zweiten Papier stellen wir unsere Strategien zur Modellierung globaler Variablen in einer Analyse vor. Dies ist notwendig, obwohl von globalen Variablen abgeraten wird, da sie in der realwelt Programmen immer noch verwendet werden. Sie stellen eine besondere Herausforderung für Analysen dar, da sie verwendet werden können, um Informationen zu verraten, und somit den Kontrollfluss beeinflussen können. Unsere Modellierung kann natürlich auch außerhalb von PhASAR verwendet werden und kann zu einer fundierteren Interpretation der Auswirkungen dieser Variablen führen. 

Beide Papiere wurden für den Engineering Track der 21st IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM) angenommen. Es handelt sich um eine jährliche Konferenz über die Analyse von Quellcode und Derivaten (z.B. Bytecode). In dieser Ausgabe wurde ein starker Schwerpunkt auf die offene Wissenschaft mit einem zusätzlichen Artefakt-Track gelegt. Da PhASAR bereits quelloffen ist, waren wir gut vorbereitet und freuten uns, bei der SCAM einzureichen. 


Into the Woods: Experiences from Building a Dataflow Analysis Framework for C/C++
Philipp Dominik Schubert, Ben Hermann, Eric Bodden, Richard Leer
In 21st IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM) - Engineering Track
DOI: https://doi.org/10.1109/SCAM52516.2021.00011

Modeling the Effects of Global Variables in Data-Flow Analysis for C/C++
Philipp Dominik Schubert, Florian Sattler, Fabian Schiebel, Ben Hermann, Eric Bodden
In 21st IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM) - Engineering Track
DOI: https://doi.org/10.1109/SCAM52516.2021.00010