IP Library Granted Patent US 8,336,034
Granted Patent B2
US 8,336,034 · App. 12/721,329 · Granted Dec 18, 2012

Modular bug detection with inertial refinement

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,336,034
App. No.
12/721,329
Granted
Dec 18, 2012
Kind
B2
Abstract

Systems and methods are disclosed to detect an error in a software with a computer readable code by applying a modular analysis based on the principle of structural abstraction and refinement of program structure; and detecting an assertion violation indicative of a software bug.

Claims (31)

1. A method to detect an error in software with a computer readable code, comprising:

applying a modular analysis based on a structural abstraction and refinement of a program structure;

detecting an assertion violation indicative of a software bug;

performing inertial refinement of one or more program regions to avoid exploring a new region until necessary; and

employing one or more minimal correcting sets produced by a constraint solver to select one or more program regions to explore.

2. The method of claim 1 , comprising eapanding arbitray program regions during refinement Based on a hierarchical programm structure.

3. The method of claim 1 , comprising expanding a relevant placeholder and reducing the number of expanded placeholders.

4. The method of claim 1 , comprising employing blocking and unblocking paths to program regions using a path summary variable for a predetermined region.

5. The method of claim 1 , comprising expanding one or more loops dynamically during analysis.

6. The method of claim 1 , comprising expanding one or more recursive functions dynamically during analysis.

7. The method of claim 1 , comprising determining a local function summary using a side-effect analysis of a called function.

8. The method of claim 1 , wherein the modular analysis comprises an under-approximate data flow analysis, comprising:

a. approximating function summaries using structural abstraction;

b. checking error conditions using structural refinement; and

c. performing forward composition of summaries using a work list.

9. A system to detect errors in software, comprising:

a processor to execute the software;

computer readable code executable by the processor for applying a modular analysis of the software based on a structural abstraction and refinement of a program structure;

computer readable code executable by the processor for detecting an assertion violation indicative of a software bug;

computer readable code executable by the processor for performing inertial refinement of one or more program regions to avoid exploring a new region until necessary; and

computer readable code executable by the processor for employing one or more minimal correcting sets produced by a constraint solver to select one or more program regions to explore.

10. The system of claim 9 , comprising computer readable code executable by the processor for expanding arbitrary program regions during refinement based on a hierarchical program structure.

11. The system of claim 9 , comprising computer readable code executable by the processor for expanding a relevant placeholder and reducing the number of expanded placeholders.

12. The system of claim 9 , comprising computer readable code executable by the processor for employing blocking and unblocking paths to program regions using a path summary variable for a predetermined region.

13. The system of claim 9 , comprising computer readable code executable by the processor for expanding one or more loops dynamically during analysis.

14. The system of claim 9 , comprising computer readable code executable by the processor for expanding one or more recursive functions dynamically during analysis.

15. The system of claim 9 , comprising computer readable code executable by the processor for determining a local function summary using a side-effect analysis of a called function.

16. The system of claim 9 , wherein the modular analysis comprises an under-approximate data flow analysis, comprising:

a. computer readable code executable by the processor for approximating function summaries using structural abstraction;

b. computer readable code executable by the processor for checking error conditions using structural refinement; and

c. computer readable code executable by the processor for performing forward composition of summaries using a work list.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE 8223797 ADD 8233797 PREVIOUSLY RECORDED ON REEL 030156 FRAME 0037. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 30, 2017
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 042587/0845 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2013
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 030156/0037 →