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.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.