Automated Techniques for Tracing and Diagnosing Crashing Bugs

PhD Thesis Proposal Defence


Title: "Automated Techniques for Tracing and Diagnosing Crashing Bugs"

by

Mr. Rongxin WU


Abstract:

Software crashes are severe manifestation of software bugs. Crashes are often 
required to be fixed with a high priority. Due to the severity of crashing 
bugs, companies (e..g, Microsoft and Apple) and open source communities 
(Mozilla and Netbeans) have widely deployed crash reporting systems to 
automatically collect program execution stacks when crashes occur. While crash 
reporting systems can massively collect and group similar crash reports, they 
offer little support for debugging and fixing crashes. As a result, crash 
diagnosis processes requires manual efforts mostly, which are tedious and 
expensive.

However, automating such diagnosis involves the following major challenges. 
First, each collected crash report contains only the last program execution 
stack (i.e., crash stack) when a crash occurs. The crash stack logs the 
crashing function and its calling chain, which provides brief information of 
the failed execution and is not sufficient for debugging. Second, crash reports 
can be numerous because a single bug can generate many crash reports due to 
different inputs or configurations. Diagnosing such a large volume of crash 
reports is non-trivial. Moreover, diagnosing crashes requires to understand the 
root causes of crashing bugs. Tracing the crash executions via program 
instrumentation is a common practice to narrow down and understand the root 
causes. However, automating crash tracing involves two major challenges. First, 
deployed software is required to run with minimal overhead and cannot afford a 
heavyweight instrumentation approach to collect program execution information. 
Furthermore, end users require that the logged information should not reveal 
sensitive production data.

To address these challenges, in this thesis, we first propose a technique 
CrashLocator to locate the buggy functions via statically analyzing and mining 
from crash stacks. Furthermore, we propose an automatic program tracing 
technique Casper, which collects program call traces information. We select 
program call trace as the tracing data for crashing bugs, since it does not 
expose user sensitive data and has been proved to be useful for crash 
reproduction and bug diagnosis. Our proposed technique causes significantly 
lower runtime and space overhead of call trace collection than the conventional 
instrumentation approach.


Date:			Tuesday, 22 November 2016

Time:                  	3:00pm - 5:00pm

Venue:                  Room 3494
                         (lifts 25/26)

Committee Members:	Prof. Shing-Chi Cheung (Supervisor)
  			Dr. Sunghun Kim (Chairperson)
 			Dr. Charles Zhang
  			Dr. Raymond Wong


**** ALL are Welcome ****