Total Recall? How Good Are Static Call Graphs Really?
dc.contributor.author | Helm, Dominik | |
dc.contributor.author | Keidel, Sven | |
dc.contributor.author | Kampkötter, Anemone | |
dc.contributor.author | Düsing, Johannes | |
dc.contributor.author | Roth, Tobias | |
dc.contributor.author | Hermann, Ben | |
dc.contributor.author | Mezini, Mira | |
dc.contributor.editor | Koziolek, Anne | |
dc.contributor.editor | Lamprecht, Anna-Lena | |
dc.contributor.editor | Thüm, Thomas | |
dc.contributor.editor | Burger, Erik | |
dc.date.accessioned | 2025-02-14T09:36:30Z | |
dc.date.available | 2025-02-14T09:36:30Z | |
dc.date.issued | 2025 | |
dc.description.abstract | Static call graphs are a fundamental building block of program analysis. However, differences in callgraph construction and the use of specific language features can yield unsoundness and imprecision. Call-graph analyses are evaluated using measures of precision and recall, but this is hard when a ground truth for real-world programs is generally unobtainable. We propose to use dynamic baselines based on fixed entry points and input corpora. The creation of this dynamic baseline is posed as an approximation of the ground truth—an optimization problem. We use manual extension and coverage-guided fuzzing for creating suitable input corpora. With these dynamic baselines, we study call-graph quality of multiple algorithms and implementations using four real-world Java programs. We find that our methodology provides insights into call-graph quality and how to measure it. We provide a novel methodology to advance the field of static program analysis as we assess the computation of one of its core data structures—the call graph. | en |
dc.identifier.doi | 10.18420/se2025-28 | |
dc.identifier.eissn | 2944-7682 | |
dc.identifier.issn | 2944-7682 | |
dc.identifier.uri | https://dl.gi.de/handle/20.500.12116/45789 | |
dc.language.iso | en | |
dc.publisher | Gesellschaft für Informatik, Bonn | |
dc.relation.ispartof | Software Engineering 2025 | |
dc.relation.ispartofseries | Lecture Notes in Informatics (LNI) - Proceedings, Volume P-360 | |
dc.subject | Call Graph | |
dc.subject | Static Analysis | |
dc.subject | Dynamic Analysis | |
dc.subject | Precision | |
dc.subject | Recall | |
dc.title | Total Recall? How Good Are Static Call Graphs Really? | en |
mci.conference.date | 22.-28. Februar 2025 | |
mci.conference.location | Karlsruhe | |
mci.conference.sessiontitle | Scientific Programme | |
mci.reference.pages | 91-92 |
Dateien
Originalbündel
1 - 1 von 1