{"title":"借助增量优化器进行高级调试","authors":"L. Pollock, M. Soffa","doi":"10.1109/HICSS.1988.11846","DOIUrl":null,"url":null,"abstract":"The design of a high-level debugger that tailors optimizations to conform to desired debugging capabilities is presented. In this scheme, debugging requests are specified before program execution and viewed as changes that inhibit optimizations in ways similar to program edits invalidating optimizations. Debugging requests are honored by detecting and temporarily disabling those optimizations that prohibit correct debugging response. An intermediate program representation keeps a history of all optimizations possible prior to debugging. Any modifications to debugging requests are incrementally incorporated into this representation which is then used to generate optimized code tailored to the new desired debugging capabilities. When debugging requests have little effect on optimizations, code closely related to the final optimized code is debugged. Execution time and debugging accuracy are always comparable to debugging unoptimized code as no additional analysis or optimization history is needed at run time.<<ETX>>","PeriodicalId":148246,"journal":{"name":"[1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track","volume":"48 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"22","resultStr":"{\"title\":\"High-level debugging with the aid of an incremental optimizer\",\"authors\":\"L. Pollock, M. Soffa\",\"doi\":\"10.1109/HICSS.1988.11846\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The design of a high-level debugger that tailors optimizations to conform to desired debugging capabilities is presented. In this scheme, debugging requests are specified before program execution and viewed as changes that inhibit optimizations in ways similar to program edits invalidating optimizations. Debugging requests are honored by detecting and temporarily disabling those optimizations that prohibit correct debugging response. An intermediate program representation keeps a history of all optimizations possible prior to debugging. Any modifications to debugging requests are incrementally incorporated into this representation which is then used to generate optimized code tailored to the new desired debugging capabilities. When debugging requests have little effect on optimizations, code closely related to the final optimized code is debugged. Execution time and debugging accuracy are always comparable to debugging unoptimized code as no additional analysis or optimization history is needed at run time.<<ETX>>\",\"PeriodicalId\":148246,\"journal\":{\"name\":\"[1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track\",\"volume\":\"48 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1900-01-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"22\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"[1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/HICSS.1988.11846\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"[1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/HICSS.1988.11846","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
High-level debugging with the aid of an incremental optimizer
The design of a high-level debugger that tailors optimizations to conform to desired debugging capabilities is presented. In this scheme, debugging requests are specified before program execution and viewed as changes that inhibit optimizations in ways similar to program edits invalidating optimizations. Debugging requests are honored by detecting and temporarily disabling those optimizations that prohibit correct debugging response. An intermediate program representation keeps a history of all optimizations possible prior to debugging. Any modifications to debugging requests are incrementally incorporated into this representation which is then used to generate optimized code tailored to the new desired debugging capabilities. When debugging requests have little effect on optimizations, code closely related to the final optimized code is debugged. Execution time and debugging accuracy are always comparable to debugging unoptimized code as no additional analysis or optimization history is needed at run time.<>