{"title":"Dependence-cache slicing: a program slicing method using lightweight dynamic information","authors":"Tomonori Takada, Fumiaki Ohata, Katsuro Inoue","doi":"10.1109/WPC.2002.1021338","DOIUrl":null,"url":null,"abstract":"When we try to debug or to comprehend a large program, it is important to separate suspicious program portions from the overall source program. Program slicing is a promising technique used to extract a program portion; however, such slicing sometimes raises difficulties. Static slicing sometimes produces a large portion of a source program, especially for programs with array and pointer variables, and dynamic slicing requires unacceptably large run-time overhead. In this paper, we propose a slicing method named \"dependence-cache slicing\", which uses both static and dynamic information. An algorithm has been implemented in our experimental slicing system, and execution data for several sample programs have been collected The results show that dependence-cache slicing reduces the slice size by 30-90% compared with the static slice size, with an increased and affordable run-time overhead, even for programs using array variables. In the future, dependence-cache slicing will become an important feature for effective debugging environments.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"2 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2002-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings 10th International Workshop on Program Comprehension","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/WPC.2002.1021338","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
Abstract
When we try to debug or to comprehend a large program, it is important to separate suspicious program portions from the overall source program. Program slicing is a promising technique used to extract a program portion; however, such slicing sometimes raises difficulties. Static slicing sometimes produces a large portion of a source program, especially for programs with array and pointer variables, and dynamic slicing requires unacceptably large run-time overhead. In this paper, we propose a slicing method named "dependence-cache slicing", which uses both static and dynamic information. An algorithm has been implemented in our experimental slicing system, and execution data for several sample programs have been collected The results show that dependence-cache slicing reduces the slice size by 30-90% compared with the static slice size, with an increased and affordable run-time overhead, even for programs using array variables. In the future, dependence-cache slicing will become an important feature for effective debugging environments.