Systems and methods of reporting multiple threads involved in a potential data race
First Claim
1. A method of reporting a warning involving a prospective data race among a plurality of threads of a multithreaded computer program, comprising:
- monitoring lock acquisition and memory accesses to a memory location and computing a memory access pattern for each memory access;
determining whether a memory access to the location by a thread results in a suspicious memory access pattern for the location and, if so, dumping the stack of the threaddetecting a subsequent memory access to the location;
determining if at least one predetermined criterion regarding the subsequent memory access is met; and
dumping the stack of the thread performing the subsequent memory access if the at least one predetermined criterion is met.
2 Assignments
0 Petitions
Accused Products
Abstract
Criteria are defined for determining when additional stack dumps would be saved and presented (e.g., to the developer). This provides more information for the developer to use for debugging, and yet does not overburden the developer with irrelevant information. Suspicious activity worthy of an additional stack dumps may be defined as a thread accessing an already suspicious location that is different than the original thread, a write access being made and no write access having yet been made to the target location, or if the lockset being held by the thread accessing the location is omitted from the intersection of all locksets involved in stack dumps for the location.
-
Citations
20 Claims
-
1. A method of reporting a warning involving a prospective data race among a plurality of threads of a multithreaded computer program, comprising:
-
monitoring lock acquisition and memory accesses to a memory location and computing a memory access pattern for each memory access; determining whether a memory access to the location by a thread results in a suspicious memory access pattern for the location and, if so, dumping the stack of the thread detecting a subsequent memory access to the location; determining if at least one predetermined criterion regarding the subsequent memory access is met; and dumping the stack of the thread performing the subsequent memory access if the at least one predetermined criterion is met. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-readable storage medium with computer-executable instructions stored thereon, the instructions, when executed by a computer, causing the computer to perform the steps of:
-
monitoring lock acquisition and memory accesses to a memory location and computing a memory access pattern for each memory access; determining whether a memory access to the location by a thread results in a suspicious memory access pattern for the location and, if so, dumping the stack of the thread; detecting a subsequent memory access to the location; determining if at least one predetermined criterion regarding the subsequent memory access is met; and dumping the stack of the thread performing the subsequent memory access if the at least one predetermined criterion is met. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification