Identifying Error Code Misuses in Complex System
Many complex software systems use error codes to differentiate error states. Therefore, it is crucial to ensure those error codes are used correctly. Misuses of error codes can lead to hardly sensible but fatal system failures. These errors are especially difficult to debug, since the failure points are usually far away from the root causes. Existing static analysis approaches to detecting error handling bugs mainly focus on how an error code is propagated or used in a program. However, they do not consider whether an error code is correctly chosen for propagation or usage within different program contexts, and thus miss to detect many error code misuse bugs. In this work, we conduct an empirical study on error code misuses in a mature commercial system. We collect error code issues from the commit history and conclude three main causes of them. To further resolve this problem, we propose a static approach that can automatically detect error code misuses. Our approach takes error code definition and error domain assignment as the input, and uses a novel static analysis method to detect the occurrence of the three categories of error code misuses in the source code.
Tue 16 JulDisplayed time zone: Beijing, Chongqing, Hong Kong, Urumqi change
09:30 - 10:35 | |||
09:30 16mDay opening | Openning Doctoral Symposium | ||
09:46 16mDoctoral symposium paper | On the Correctness of GPU Programs Doctoral Symposium Chao Peng University of Edinburgh, UK | ||
10:02 16mDoctoral symposium paper | JNI Program Analysis with Automatically Extracted C Semantic Summary Doctoral Symposium Sungho Lee KAIST, South Korea | ||
10:18 16mDoctoral symposium paper | Identifying Error Code Misuses in Complex System Doctoral Symposium Wensheng Tang The Hong Kong University of Science and Technology |