US 7,555,418 B1
Procedure summaries for multithreaded software
Shaz Qadeer, Seattle, Wash. (US); Niels Jakob Rehof, Redmond, Wash. (US); and Sriram K. Rajamani, Bellevue, Wash. (US)
Assigned to Microsoft Corporation, Redmond, Wash. (US)
Filed on Dec. 19, 2003, as Appl. No. 10/742,695.
Int. Cl. G06F 9/45 (2006.01)
U.S. Cl. 703—22 19 Claims
OG exemplary drawing
 
1. A computer program product embodied on a first computer-readable medium and comprising code that, when executed, causes a computer to perform a method of generating a partial procedure summary of a procedure of multithreaded software, wherein the procedure performs a plurality of actions when executed, the method comprising:
during a reachability analysis of at least a portion of the multithreaded software, reaching the procedure at a first point in the reachability analysis;
when the procedure is reached at the first point in the reachability analysis,
1) identifying at least one plurality of the actions within the procedure as atomically modelable with respect to multithreaded execution of the procedure as atomically modelable actions, wherein the atomically modelable actions are not subject to interruption by other threads, and
2) generating, by the computer, the at least one partial procedure summary of the procedure from the identified atomically modelable actions, wherein the at least one partial procedure summary comprises at least one state pair, wherein the at least one state pair models an initial state and a resulting state of the identified atomically modelable actions;
storing the at least one partial procedure summary of the procedure of multithreaded software on a second computer readable medium;
during continuation of the reachability analysis, at a second point in the reachability analysis, reaching the procedure a second time; and
wherein if an initial state of the procedure reached the second time is the same as the initial state of the at least one partial procedure summary, then the resulting state of the at least one partial procedure summary is used as a state of the procedure in the reachability analysis.