Static data race detection and analysis
AssigneeMicrosoft Corporation
InventorEric L. Eilebrecht
Life of this patent
Estimating the term…
Abstract
Static data race analysis of at least a portion of a multi-threaded application in order to identify potential data race defects in the multi-threaded application. The static data race analysis includes intra-component static analysis as well as inter-component static analysis. The intra-component static analysis for a given component involves identifying a set of memory accesses operations in the component. For each of at least one of the set of memory access operations, the analysis determines whether there is a data race protection element associated with the memory access command.
Claims20
A computer program product comprising one or more computer storage media having thereon computer-executable instructions that are structured such that, when executed by one or more processors of a computing system, cause the computing system to perform a method for performing static data race analysis of at least a portion of a multi-threaded application in order to identify potential data race defects in the multi-threaded application, the method comprising:
- an act of performing intra-component static analysis for at least a plurality of components of the multi-threaded application, the intra-component analysis comprising the following for each of at least some of the plurality of components:
- an act of identifying a set of memory access operations in the component;
- and
- for each of the memory access operations in the set of memory access operations in the component, performing the following:
- an act of determining whether there is a data race protection element associated with the memory access operation;
- and
- an act of performing inter-component static analysis on the plurality of components.
A method for performing static data race analysis of at least a portion of a multi-threaded application in order to identify potential data race defects in the multi-threaded application, the method comprising:
- an act of performing intra-component static analysis of a multi-threaded application;
- and
- an act of performing inter-component static analysis on the plurality of components, wherein the act of performing inter-component static analysis comprises the following for each of at least some of the plurality of components for at least one parameter of the corresponding component:
- an act of determining a type of operation a caller component performs on the parameter of the component;
- an act of determining a type of operation that an associated callee component performs on the parameter of the component;
- and
- an act of reconciling the determinations of the two types of operation to identify whether the operation is protected from a data race.
A computer program product comprising one or more computer storage media having thereon computer-executable instructions that are structured such that, when executed by one or more processors of a computing system, cause the computing system to perform a method for performing static data race analysis of at least a portion of a multi-threaded application in order to identify potential data race defects in the multi-threaded application, the method comprising:
- an act of performing intra-component static analysis for at least a plurality of components of the multi-threaded application, the intra-component analysis comprising the following for each of at least some of plurality of components:
- an act of identifying a set of memory access operations in the component;
- and
- for each of the memory access operations in the set of memory access operations in the component, performing the following:
- an act of determining whether there is a data race protection element associated with the memory access command;
- and
- an act of performing inter-component static analysis on the plurality of components, wherein the act of performing inter-component static analysis comprises the following for each of at least some of the plurality of components for at least one parameter of the corresponding component:
- an act of determining a type of operation a caller component performs on the parameter of the component;
- an act of determining a type of operation that an associated callee component performs on the parameter of the component;
- and
- an act of reconciling the determinations of the two types of operation to identify whether the operation is protected from a data race.
Dependencies are inferred from the claim text.