一句话:通过实证研究归纳三类错误码误用,并提出基于错误码定义与错误域赋值的静态分析方法。
许多复杂软件系统用错误码区分错误状态,错误码误用会导致难以理解却致命的系统故障,且故障点常远离根因,调试困难。现有静态分析主要关注错误码的传播或使用方式,未考虑在不同程序上下文中错误码选择是否正确,因而漏报大量误用。本文对成熟商业系统中的错误码误用进行实证研究,从提交历史收集相关问题并归纳出三类主要成因;进而提出一种静态方法,以错误码定义和错误域赋值为输入,采用新颖的静态分析检测源码中三类错误码误用的发生。摘要未报告定量评估结果。
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.
DOI 原文 ·
@inproceedings{paperbot5352,
title = {Identifying error code misuses in complex system},
author = {Wensheng Tang},
booktitle = {ISSTA},
year = {2019},
doi = {10.1145/3293882.3338986}
}