Breakpoints, watchpoints och villkorliga varianter av båda är viktiga debugging primitiva, men deras naturliga implementationer försämrar ofta prestanda avsevärt. Slowdown uppstår eftersom avlusaren-verktyget som implementerar breakpoint/watchpoint-gränssnittet-implementeras i en process som är skild från det felsökta programmet. Eftersom avlusaren utvärderar väktaruttrycken och villkorliga predikerar för att avgöra om användaren ska åberopa, kräver en felsökningssession vanligtvis många dyra applicationdebugger sammanhangsbyten, vilket resulterar i avmattningar på 40 000 gånger eller mer i nuvarande kommersiella och open-source avlusare! I detta dokument presenterar vi ett effektivt och effektivt genomförande av (villkorliga) brytpunkter och brytpunkter som använder DISE för att dynamiskt bädda in felsökningslogik i det löpande programmet. DISE (dynamisk instruktionsströmredigering) är en tidigare föreslagen, programmerbar hårdvara för dynamisk anpassning av applikationer genom att omvandla instruktionsströmmen då den avkodas. DISE inbäddning bevarar den logiska separationen av applikation och debuggerinstructions läggs dynamiskt och transparent, befintliga programkod och data är inte statiskt modifierade och har liten startkostnad. Simulering på cykelnivå på SPEC 2000-riktmärkena visar att DISE-metoden eliminerar alla onödiga sammanhangsbyten, vanligtvis begränsar felsökningen till 25 % eller mindre för ett brett spektrum av övervakningspunkter och överträffar alternativa implementeringar.
DISE REF (Dynamic Instruction Steam Editing) är en generell hårdvarumekanism för interaktiv felsökning.
Low-overhead interactive debugging via dynamic instrumentation with DISE
{'venue': '11th International Symposium on High-Performance Computer Architecture', 'journal': '11th International Symposium on High-Performance Computer Architecture', 'mag_field_of_study': ['Computer Science']}