Error Detection by Data Flow Analysis Restricted to Executable Paths

        BEAM is a tool for finding errors in C++ programs by source code analysis.
        It uses data flow analysis to find paths leading to an error. Classical data flow
        analysis propagates information along all paths, including non-executable ones,
        which results in reporting errors that are not real. To avoid this problem,
        BEAM restricts data flow analysis to paths that are executable, and in addition
        also consistent with user's assumptions on initial state of memory. However, the
        user is not required to specify his assumptions. The main contribution of this paper
        is an algorithm for finding an executable path to error, while avoiding path enumeration.

By: Daniel Brand

Published in: RC21484 in 1999

    rc5.ps

    LIMITED DISTRIBUTION NOTICE:

    This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.

    ATTRVRNH

Questions about this service can be mailed to reports@us.ibm.com .