DocumentCode
2577977
Title
Precise Detection of Uninitialized Variables Using Dynamic Analysis - Extending to Aggregate and Vector Types
Author
Jana, Anindya ; Naik, Rajendra
Author_Institution
TCS Innovation Labs., Software R&D Tata Res. Dev. & Design Centre, Pune, India
fYear
2012
fDate
15-18 Oct. 2012
Firstpage
197
Lastpage
201
Abstract
Uninitialized variable is a variable in a program that is declared but is not assigned a definite known value before it is used. Compilers of modern programming languages (like Java) check for their presence, but in languages like C and COBOL, they are a critical reason for incorrect results, wrong data entries, and run-time failures. Tools based on static and dynamic analysis techniques are available that detect use of uninitialized variables. However, the static analysis tools face the issue of false positives (precision) while the dynamic analysis tools are not able to cover all the classes of variables (completeness). In this paper, we present a technique based on dynamic program analysis and results of the prototype tool to detect the first use of uninitialized variables. Using a combination of source and binary instrumentation, the technique is able to track variables of basic types, individual array elements, and fields of structures. We verified the completeness and precision of the technique using two open source case-studies with very large input datasets. We present the comparison of the results with other open source tools. The prototype tool is a clear winner in terms of precision and the coverage of variables, but more work is required to further optimize the size of instrumentation information, and the performance of its analyzer.
Keywords
C language; COBOL; Java; program compilers; program diagnostics; public domain software; C language; COBOL language; Java language; array elements; binary instrumentation; data entries; dynamic analysis technique; false positives precision; instrumentation information; open source tools; programming language compilers; prototype tool; run-time failures; source instrumentation; static analysis technique; uninitialized variable detection; variable completeness; variable declaration; Arrays; Computational fluid dynamics; Data preprocessing; Instruments; Performance analysis; Prototypes; Runtime; Dynamic Program Analysis; Stati Program Analysis; Uninitialized Variable;
fLanguage
English
Publisher
ieee
Conference_Titel
Reverse Engineering (WCRE), 2012 19th Working Conference on
Conference_Location
Kingston, ON
ISSN
1095-1350
Print_ISBN
978-1-4673-4536-1
Type
conf
DOI
10.1109/WCRE.2012.29
Filename
6385115
Link To Document