Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Advanced Exception Handling Mechanisms
IEEE Transactions on Software Engineering
Journal of Systems and Software
ASTEC: a new approach to refactoring C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Discovering faults in idiom-based exception handling
Proceedings of the 28th international conference on Software engineering
Exceptional situations and program reliability
ACM Transactions on Programming Languages and Systems (TOPLAS)
Documenting and automating collateral evolutions in linux device drivers
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
Parsing C/C++ Code without Pre-processing
CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Reengineering Idiomatic Exception Handling in Legacy C Code
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
Faults in linux: ten years later
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Aspectizing exception handling: a quantitative study
Advanced Topics in Exception Handling Techniques
File systems deserve verification too!
Proceedings of the Seventh Workshop on Programming Languages and Operating Systems
Hi-index | 0.00 |
The C language does not provide any abstractions for exception handling or other forms of error handling, leaving programmers to devise their own conventions for detecting and handling errors. The Linux coding style guidelines suggest placing error handling code at the end of each function, where it can be reached by gotos whenever an error is detected. This coding style has the advantage of putting all of the error-handling code in one place, which eases understanding and maintenance, and reduces code duplication. Nevertheless, this coding style is not always applied. In this paper, we propose an automatic program transformation that transforms error-handling code into this style. We have applied our transformation to the Linux 2.6.34 kernel source code, on which it reorganizes the error handling code of over 1800 functions, in about 25 minutes.