Font Size: a A A

A Design And Implementation Of Log Enhancer Based On Static Code Analysis

Posted on:2016-02-14Degree:MasterType:Thesis
Country:ChinaCandidate:W MaFull Text:PDF
GTID:2348330479954383Subject:Software engineering
Abstract/Summary:PDF Full Text Request
Software systems may be out of order because of many factors such as program bugs or project administration errors. Diagnosing these run failures is important as well as challenging since it is difficult to repeat them because of various reasons:(1) difficulty in building the exact same execution environment; (2) unavailability of file content and users'inputs due to privacy concerns. Diagnosing software failures in this field is fairly difficult, in part due to the complexity of trouble-shooting any complex program structure. Effective testing tool is really rare, so it is one of the problems to be solved.Therefore, developers always have to diagnose a program run failure based on logs collected back from the corresponding source code and the printed log statement. Such diagnosis requires professional knowledge and also needs much time, tedious to narrow down root causes. To solve this problem, a tool, called Static Code Analyzer, that analyzes source code by using control flow graph and data analysis to infer what must or may have happened during the failed program run should be proposed. It requires neither re-execution of the software nor experience on the log's semantics. It infers both control and data value information regarding to the failed execution. By analyzing static code, it infers the execution path. It doesn't need to compile the code to acquire the information. To find out the problem we use three steps:1.log parser; 2.path infer; 3.value infer. Path infer construct the data structure of the control flow and study the algorithm of control flow generating. Based on control flow, data infer deals with the code by recursive analysis including the call of the function to find out the problem.Static Code Analyzer could automatically "enhances" existing logging code to aid in future post-failure debugging. Static Code Analyzer can acquire the execution path of the program precisely and output the analysis result in console and put the enhancing information into the log. Many kinds of example are used to test it and the result is very correct. Static Code Analyzer are evaluated during programming and demonstrate that it can dramatically reduce the set of potential root failure causes that must be considered during diagnosis while imposing negligible overheads and improve developer's efficiency.
Keywords/Search Tags:Log Enhance, Software Diagnosability, Static Analysis
PDF Full Text Request
Related items