Abstract-Debugging innebär ofta 1) hitta poängen med misslyckande (det första uttalandet som ger dålig utgång) och 2) hitta och fixa den faktiska buggen. Skriva ut uttalanden och avlusare brytpunkter kan hjälpa till med steg 1. Skärning av programmet tillbaka från värden som används vid felet kan hjälpa med steg 2. Inget tillvägagångssätt är dock idealiskt: Debuggers och utskrifter kan vara klumpiga och tidsödande och baklänges skivor kan vara nästan lika stora som det ursprungliga programmet. Detta dokument tar upp båda problemen. Vi presenterar callstack-känslig skivning, vilket minskar skivor storlek genom att utnyttja serien av samtal aktiva när ett program misslyckas. Vi visar också hur skärningspunkterna ytterligare kan minska skivornas storlek. Vi beskriver sedan en uppsättning verktyg som identifierar felpunkter för program som producerar dålig utgång. Slutligen använder vi vår punkt-of-failure verktyg för en svit av buggy program och utvärdera callstack-känslig skärningspunkt och skiva som tillämpas på felsökning. Callstack-känslig skivning är mycket effektiv: I genomsnitt är en kallstack-känslig skiva ungefär 0,31 gånger storleken på motsvarande full skiva, ner till bara 0.06 tid i bästa fall. Skärningspunkten är mindre imponerande, i genomsnitt, men kan ibland visa sig användbar i praktiken. Index Terms-Static program skivning, callstack-känslig analys, punkter för misslyckande, utdata spårning och tilldelning.
En ny metod baserad på dynamisk 3 se "Daikon Invariant Detector", http://groups.csail.mit.edu/pag/daikon/ slicing föreslås i REF, som genom en callstack-känslig skärningspunkt och skivor skärningspunkten, minskar skivor storlek genom att utnyttja serien av samtal aktiva när ett program misslyckas.
Better Debugging via Output Tracing and Callstack-Sensitive Slicing
{'venue': 'IEEE Transactions on Software Engineering', 'journal': 'IEEE Transactions on Software Engineering', 'mag_field_of_study': ['Computer Science']}