Abstract
Most software systems frequently encounter errors when interacting with their environments. When errors occur, error-handling code must execute flawlessly to facilitate system recovery. Implementing correct error handling is repetitive but non-trivial, and developers often inadvertently introduce bugs into error-handling code. Existing tools require correct error specifications to detect error-handling bugs. Manually generating error specifications is error-prone and tedious, while automatically mining error specifications is hard to achieve a satisfying accuracy. In this paper, we propose EH-Miner, a novel and practical tool that can automatically detect error-handling bugs without the need for error specifications. Given a function, EH-Miner mines its error-handling rules when the function is frequently checked by an equivalent condition, and handled by the same action. We applied EH-Miner to 117 applications across 15 software domains. EH-Miner mined error-handling rules with the precision of 91.1% and the recall of 46.9%. We reported 142 bugs to developers, and 106 bugs had been confirmed and fixed at the time of writing. We further applied EH-Miner to Linux kernel, and reported 68 bugs for kernel-4.17, of which 42 had been confirmed or fixed.
Original language | English |
---|---|
Title of host publication | Proceedings - 2019 34th IEEE/ACM International Conference on Automated Software Engineering, ASE 2019 |
Pages | 213-225 |
Number of pages | 13 |
ISBN (Electronic) | 9781728125084 |
DOIs | |
State | Published - Nov 2019 |
Event | 34th IEEE/ACM International Conference on Automated Software Engineering, ASE 2019 - San Diego, United States Duration: Nov 10 2019 → Nov 15 2019 |
Publication series
Name | Proceedings - 2019 34th IEEE/ACM International Conference on Automated Software Engineering, ASE 2019 |
---|
Conference
Conference | 34th IEEE/ACM International Conference on Automated Software Engineering, ASE 2019 |
---|---|
Country/Territory | United States |
City | San Diego |
Period | 11/10/19 → 11/15/19 |
Bibliographical note
Publisher Copyright:© 2019 IEEE.
Keywords
- Error handling
- Library function
- Specification
ASJC Scopus subject areas
- Computer Networks and Communications
- Software
- Control and Optimization