Abstrakt. I den här artikeln studerar vi problemet med att automatiskt hitta programutföranden som når en viss mållinje. Detta problem uppstår i många felsökningsscenarier, t.ex., en utvecklare kan lära sig att ett fel är möjligt på en viss linje men kanske inte vet exakt hur man reproducerar felet eller ens om det är reproducerbart. Detta kan hända särskilt ofta för felrapporter från statiska analysverktyg, som kan producera falska positiva. Vi föreslår två nya riktade symboliska exekveringsstrategier som syftar till att lösa detta problem: kortare avstånd symbolisk exekvering (SDSE) använder ett avstånd metrisk i en interprocedural kontrollflöde diagram för att vägleda symbolisk exekvering mot ett visst mål; och call-chain-backward symbolisk exekvering (CCBSE) iterativt kör framåt symbolisk exekvering, med början i funktionen som innehåller mållinjen, och sedan hoppa bakåt upp i samtalskedjan tills det hittar en genomförbar väg från början av programmet. Vi föreslår också Mix-CCBSE, en strategi där CCBSE är sammansatt med en annan sökstrategi för att ge en hybrid som är mer kraftfull än endera strategin ensam. Vi jämför SDSE, CCBSE och Mix-CCBSE med flera befintliga strategier från litteraturen. Vi finner att även om SDSE presterar extremt bra i många fall, misslyckas det ibland dåligt. Men genom att blanda CCBSE med KLEE:s sökstrategi får vi en strategi som har den bästa övergripande prestandan i de strategier vi studerat.
Mamma och Al. REF fokuserar på felsökningsscenarier när utvecklaren redan vet om den felaktiga linjen, men de kanske inte vet exakt hur man reproducerar felet eller ens om det är reproducerbart.
Directed symbolic execution
{'venue': 'SAS', 'journal': None, 'mag_field_of_study': ['Computer Science']}