Detta dokument ger två bidrag till arkitektoniskt stöd för avlusning av programvara. För det första föreslås en ny statistik-baserad, on-fly feldetektionsmetod som kallas PC-baserad invariant detektion. Tanken är baserad på observationen att i de flesta program, en given minnesplats är vanligtvis nås av endast ett fåtal instruktioner. Därför, genom att fånga invarianten av uppsättningen av datorer som normalt får tillgång till en viss variabel, kan vi upptäcka åtkomster genom avvikande instruktioner, som ofta orsakas av minneskorruption, buffertspill, stack blacking eller andra minnesrelaterade buggar. Eftersom denna metod är statistikbaserad kan den upptäcka fel som inte bryter mot några programmeringsregler och som därför sannolikt kommer att missas av många befintliga verktyg. Det andra bidraget är en ny arkitektonisk förlängning som kallas Check Look-aside Buffert (CLB). CLB använder ett Bloom filter för att minska övervakning overheads i det nyligen föreslagna iWatcher arkitektoniska ramverket för programvara felsökning. CLB minskar avsevärt omkostnaderna för PC-baserad invariant felsökning. Vi demonstrerar en PC-baserad invariant detektionsverktyg som kallas AccMon som utnyttjar arkitektoniskt, kör-tidssystem och kompilatorstöd. Våra experimentella resultat med sju buggiga applikationer och totalt tio fel, visar att AccMon kan upptäcka alla tio fel med få falska alarm (0 för fem program och 2-8 för två program) och med låga overhead (0,24-2,88 gånger). Flera befintliga verktyg som utvärderats, inklusive Purify, CCured och värdebaserade invarianta detektionsverktyg, misslyckas med att upptäcka några av felen. Dessutom är Purify's overhead en storleksordning som är högre än AccMon's. Slutligen visar vi att CLB är mycket effektivt när det gäller att minska omkostnaderna.
AccMon REF upptäcker minnesrelaterade fel genom att fånga överträdelser av programräknare baserade invarianter.
AccMon: Automatically Detecting Memory-Related Bugs via Program Counter-Based Invariants
{'venue': "37th International Symposium on Microarchitecture (MICRO-37'04)", 'journal': "37th International Symposium on Microarchitecture (MICRO-37'04)", 'mag_field_of_study': ['Computer Science']}