Patent ID: 8056068

Claim:
A probe system for multithreaded user-space programs, the system comprising: an instrumentation module that enables single stepping out of line processing for multithreaded programs; an establish probepoint module that divides up an area of the probed program's memory into a plurality of instruction slots; an ensure slot assigned module that ensures that a instruction slot is assigned to a probepoint; a slot acquisition module that acquires the instruction slot for the probepoint, by stealing the instruction slot from another probepoint as needed; wherein the stealing the instruction slot from the other probepoint as needed comprises: checking for an occurrence in which an owner for the instruction slot equals the other probepoint; in response to an occurrence in which the owner for the instruction slot does not equal the other probepoint, determining that a different probepoint already stole the instruction slot and unlocking a write semaphore for the instruction slot; and in response to the occurrence in which the owner for the instruction slot equals the other probepoint, setting the owner for the instruction slot to null and unlocking the write semaphore for the instruction slot; and a free slot module that relinquishes the instruction slot owned by the probepoint when the probepoint is being unregistered.