Abstrakt. Från operativsystem och webbläsare till rymdfarkoster, många mjukvarusystem upprätthåller en logg över händelser som ger en partiell historia av utförande, stöder post-mortem (eller post-reboot) analys. Tyvärr begränsar bandbredd, lagring begränsningar och integritet innehållet i loggar, vilket gör det svårt att helt rekonstruera utförandet från dessa spår. Detta dokument presenterar en teknik för att ändra ett program så att det kan producera exakt de utföranden som överensstämmer med en given (partiell) spår av händelser, vilket möjliggör effektiv analys av det reducerade programmet. Vår metod kräver inga ytterligare historikvariabler för att spåra logghändelser, och det kan skära bort kod som inte utförs i ett givet spår. Vi beskriver de första erfarenheterna med att implementera våra idéer genom att utöka CBMC:s modellkontroll för C-program. Genom att tillämpa vår teknik på ett litet, 400-radigt filsystem skrivet i C får vi mer än tre storleksordningsförbättringar i körtiden över ett naivt tillvägagångssätt baserat på att lägga till historikvariabler, tillsammans med femtio till åttiofaldiga minskningar i storleken på de SAT-problem som lösts.
Dessutom, Groce et al. skiva ett program till en mycket mindre som kan producera händelser som överensstämmer med en given (partiell) spår av (misslyckande-indikerande) händelser så att ytterligare felanalys kan utföras på skivade programmet REF.
Exploiting traces in program analysis
{'venue': 'In Proc. Tools and Algorithms for the Construction and Analysis of Systems', 'journal': None, 'mag_field_of_study': ['Computer Science']}