ePrints@IIScePrints@IISc Home | About | Browse | Latest Additions | Advanced Search | Contact | Help

Two techniques to improve the precision of a demand-driven null-dereference verification approach

Margoor, Amogh and Komondoor, Raghavan (2015) Two techniques to improve the precision of a demand-driven null-dereference verification approach. In: SCIENCE OF COMPUTER PROGRAMMING, 98 (4). pp. 645-679.

[img] PDF
sci_com_pro_98_645_2015.pdf - Published Version
Restricted to Registered users only

Download (1MB) | Request a copy
Official URL: http://dx.doi.org/ 10.1016/j.scico.2014.09.006

Abstract

The problem addressed in this paper is sound, scalable, demand-driven null-dereference verification for Java programs. Our approach consists conceptually of a base analysis, plus two major extensions for enhanced precision. The base analysis is a dataflow analysis wherein we propagate formulas in the backward direction from a given dereference, and compute a necessary condition at the entry of the program for the dereference to be potentially unsafe. The extensions are motivated by the presence of certain ``difficult'' constructs in real programs, e.g., virtual calls with too many candidate targets, and library method calls, which happen to need excessive analysis time to be analyzed fully. The base analysis is hence configured to skip such a difficult construct when it is encountered by dropping all information that has been tracked so far that could potentially be affected by the construct. Our extensions are essentially more precise ways to account for the effect of these constructs on information that is being tracked, without requiring full analysis of these constructs. The first extension is a novel scheme to transmit formulas along certain kinds of def-use edges, while the second extension is based on using manually constructed backward-direction summary functions of library methods. We have implemented our approach, and applied it on a set of real-life benchmarks. The base analysis is on average able to declare about 84% of dereferences in each benchmark as safe, while the two extensions push this number up to 91%. (C) 2014 Elsevier B.V. All rights reserved.

Item Type: Journal Article
Publication: SCIENCE OF COMPUTER PROGRAMMING
Publisher: ELSEVIER SCIENCE BV
Additional Information: Copy right for this article belongs to the ELSEVIER SCIENCE BV, PO BOX 211, 1000 AE AMSTERDAM, NETHERLANDS
Keywords: Dataflow analysis; Weakest pre-conditions
Department/Centre: Division of Electrical Sciences > Computer Science & Automation
Date Deposited: 20 Feb 2015 12:08
Last Modified: 20 Feb 2015 12:08
URI: http://eprints.iisc.ac.in/id/eprint/50843

Actions (login required)

View Item View Item