Funktionsprioritet protokoll definierar beställa relationer mellan funktion samtal i ett program. I vissa fall, företräde protokoll är välförståeliga (t.ex., ett samtal till pthread mutex init måste alltid vara närvarande på alla program vägar innan ett samtal till pthread mutex lås ). Ofta är dessa protokoll emellertid varken väldokumenterade eller lätta att härleda. Till följd av detta kan protokollöverträdelser leda till subtila fel som är svåra att identifiera och rätta till. I detta dokument presenterar vi CHRONICLER, ett verktyg som tillämpar skalbar inter-procedural path-känslig statisk analys för att automatiskt infer exakta funktionsprioritet protokoll. CHRONICLER beräknar priority relations baserat på ett programs kontrollflöde struktur, integrerar dessa relationer i ett arkiv, och analyserar dem med hjälp av sekvensbrytning tekniker för att generera en samling av genomförbara priority protokoll. Avvikelser från dessa protokoll som finns i programmet är märkta som överträdelser, och representerar potentiella källor till buggar. Vi visar CHRONICLER effektivitet genom att härleda protokoll för en samling av riktmärken som varierar i storlek från 66K till 2M rader kod. Våra resultat bekräftar inte bara förekomsten av buggar i dessa program på grund av företräde protokoll överträdelser, men också belysa vikten av väg känslighet på noggrannhet och skalbarhet.
CHRONICLER REF är ett statiskt analysverktyg som innehåller funktionsprioritet protokoll som definierar beställningsrelationer mellan funktionssamtal i programkod.
Path-Sensitive Inference of Function Precedence Protocols
{'venue': "29th International Conference on Software Engineering (ICSE'07)", 'journal': "29th International Conference on Software Engineering (ICSE'07)", 'mag_field_of_study': ['Computer Science']}