Int J Performability Eng ›› 2020, Vol. 16 ›› Issue (2): 214-222.doi: 10.23940/ijpe.20.02.p6.214222

• Orginal Article • Previous Articles     Next Articles

Lightweight Fault Localization using Weighted Dynamic Control Flow Subgraph

Yong Wangabc, SanMing Liua*(), Jun Lia, Xiangyu Chenga, and Wan Zhoua   

  1. aSchool of Computer and Information, Anhui Polytechnic University, Wuhu, 241000, China
    bKey Laboratory of Safety-Critical Software (Nanjing University of Aeronautics and Astronautics), Ministry of Industry and Information Technology, Nanjing, 210000, China
    cState Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, 210000, China
  • Submitted on ; Revised on ; Accepted on
  • Contact: SanMing Liu E-mail:yongwang@ahpu.edu.cn
  • Supported by:
    This work was supported by the Anhui Natural Science Foundation (No. 1908085MF183), the Anhui University Natural Science Fund Key Project (No. KJ2018A0116, KJ2016A252, and KJ2017A104), Projects 61772270 and 61562087 supported by the NSFC of China, the Safety-Critical Software Key Laboratory Research Program (No. NJ2018014), the Training Program for Young and Middle-aged Top Talents of Anhui Polytechnic University, and the State Key Laboratory for Novel Software Technology(Nanjing University) Research Program (No. KFKT2019B23).

Abstract:

Lightweight fault localization techniques (LFL), which identify fault location(s) in a buggy program by comparing the execution statistics of program spectra in passed executions and failed executions, are popular automatic debugging techniques. They assume “perfect fault understanding”, which means that giving a fault location suffices for programmers to understand the root cause of failures. However, this assumption is unrealistic in practice. Many user studies showed that programmers need some context or explanations to understand the fault before being able to recognize it. To solve this issue, we propose an LFL approach to expedite software debugging. In our approach, we firstly perform module-level fault localization and then generate a weighted dynamic control flow subgraph (WDCFS) for a hypothesis fault module, which weighs the suspiciousness nodes (basic-blocks) to further localize the root cause of failures. In order to evaluate the effectiveness of our approach, we conduct a controlled experiment to compare two different module-level LFL fault localization methods and validate the effectiveness of WDCFS. According to our preliminary experiments, the results are promising.

Key words: Fault localization, fault understanding, weighted dynamic control flow, debugging