Program Analysis by Partial Emulation
OwnerBill Angellinventor
Life of this patent
Estimating the term…
Abstract
Program code is statically analyzed (without actually executing the code) by “virtually” executing the code with a virtual processor or emulator that steps through the code. The analysis includes locating entry and exit points, identifying branch points, analyzing one or more code paths from a branch, noting calls to external functions (e.g., libraries), etc. Programming logic errors can be located, such as calls that never return or isolated code that can never be reached. Analysis can include dynamic analysis of code when emulation is combined with a debugger, for example.
Claims31
A method comprising:
- statically analyzing code by emulating execution of the code;
- and
- identifying programming logic errors discovered in the code during the analyzing.
A system comprising:
- an interface for receiving code;
- and
- a virtual processor coupled to the interface and configured for statically analyzing the code by emulating execution of the code, and for identifying programming logic errors in the code discovered during the analyzing.
A computer-readable medium having instructions stored thereon, which, when executed by a processor, causes the processor to perform operations comprising:
- statically analyzing code by emulating execution of the code;
- and
- identifying programming logic errors discovered in the code during the analyzing.
A system comprising:
- means for statically analyzing code by emulating execution of the code;
- and
- means for identifying programming logic errors discovered in the code during the analyzing.
Dependencies are inferred from the claim text.