Patent US1529088A successfully refreshed from Google Patents.
Patent US1975939A successfully refreshed from Google Patents.
Patent US6378124B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6378124B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Debugger thread synchronization control points

Assignee: International Business Machines Corp
•
Filing: 1999-02-22
•
Granted: 2002-04-23
•
Expires: 2019-02-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer system, program product and method utilize thread synchronization for debugging multi-threaded computer programs. Synchronization control points (“sync points”) are used to conditionally suspend or delay execution of a thread or threads depending on another thread or threads hitting the same or other sync points. A thread hitting a synchronization control point is suspended, reference is made to break point table to determine what synchronization condition must be triggered to release the thread, and if triggered, what delay, if any, will be imposed prior to release.

Inventors

  • 👤 Cary Lee Bates
  • 👤 Jeffrey Michael Ryan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 02:37
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3698; G06F11/362; G06F11/3632

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 117 words
A method of synchronizing execution of a multi-thread program on a computer system comprising: locating an entry address as a first synchronization control point for a first critical section in the program; storing in a break point table an op code and the entry address; storing an instruction configured to interrupt program execution at the entry address; storing in the break point table a synchronization condition associated with the first synchronization control point; executing a portion of the multi-thread program with a debugger, the multi-thread program including a plurality of threads; and conditionally suspending execution of a first thread at the first synchronization control point while continuing execution of a second thread pending a predetermined synchronization event.
Claim 2
Independent Claim 117 words
A method of synchronizing execution of a multi-thread program on a computer system comprising: locating an entry address as a first synchronization control point for a first critical section in the program; storing in a break point table an op code and the entry address; storing an instruction configured to interrupt program execution at the entry address; storing in the break point table a synchronization condition associated with the first synchronization control point; executing a portion of the multi-thread program with a debugger, the multi-thread program including a plurality of threads; and conditionally suspending execution of a first thread at the first synchronization control point while continuing execution of a second thread pending a predetermined synchronization event.
Claim 3
Dependent Claim 36 words
The method of claim 1 , wherein continuing execution of the second thread pending the predetermined synchronization event includes detecting the second thread encountering a second synchronization control point associated with the first synchronization control point.
Claim 4
Dependent Claim 48 words
The method of claim 2 , wherein a delay amount is associated with the first synchronization control point, and wherein suspending execution of the first thread further comprises delaying execution of the first thread by a delay amount after the second thread encounters the second synchronization control point.
Claim 5
Dependent Claim 16 words
The method of claim 3 , further comprising suspending the second thread by the delay amount.
Claim 6
Dependent Claim 24 words
The method of claim 2 , further comprising unsuspending the first and second threads after the second thread encounters the second synchronization control point.
Claim 7
Dependent Claim 29 words
The method of claim 1 , wherein continuing execution of the second thread pending the predetermined synchronization event includes detecting the second thread encountering the first synchronization control point.
Claim 8
Dependent Claim 35 words
The method of claim 1 , wherein continuing execution of the second thread pending the predetermined synchronization event includes exceeding a synchronization condition for the number of threads suspended at the first synchronization control point.
Claim 9
Dependent Claim 27 words
The method of claim 1 , further comprising allowing the execution of the first thread by emulating the original op code stored in the break point table.
Claim 10
Dependent Claim 48 words
The method of claim 1 , wherein conditionally suspending execution of the first thread at the first synchronization control point while continuing execution of the second thread pending the predetermined synchronization event includes setting a mutex associated with the first synchronization control point to suspend the first thread.
Claim 11
Dependent Claim 27 words
The method of claim 9 , further comprising unsuspending execution of the first thread by clearing the mutex in response to the predetermined synchronization event being satisfied.
Claim 12
Dependent Claim 31 words
The method of claim 9 , further comprising allowing a third thread to execute after hitting the first synchronization control point, the third thread being excluded from the predetermined synchronization event.
Claim 13
Independent Claim 136 words
An apparatus comprising: a memory; a first multi-threaded program resident in memory, the first program including a first thread and a second thread; and a second program, resident in the memory, the second program configured to locate an entry address as a first synchronization control point for a first critical section in the first program, to store in a break point table an op code and the entry address, to store an instruction configured to interrupt program execution at the entry address, to store in the break point table a synchronization condition associated with the first synchronization control point, to execute a portion of the first program for debugging, and to conditionally suspend execution of the first thread at the first synchronization control point while continuing execution of a second thread pending a predetermined synchronization event.
Claim 14
Independent Claim 136 words
An apparatus comprising: a memory; a first multi-threaded program resident in memory, the first program including a first thread and a second thread; and a second program, resident in the memory, the second program configured to locate an entry address as a first synchronization control point for a first critical section in the first program, to store in a break point table an op code and the entry address, to store an instruction configured to interrupt program execution at the entry address, to store in the break point table a synchronization condition associated with the first synchronization control point, to execute a portion of the first program for debugging, and to conditionally suspend execution of the first thread at the first synchronization control point while continuing execution of a second thread pending a predetermined synchronization event.
Claim 15
Dependent Claim 17 words
The apparatus of claim 12 , further comprising a break point table defining the synchronization control points.
Claim 16
Dependent Claim 36 words
The apparatus of claim 12 , wherein the second program is configured to continue execution of the second thread pending the predetermined synchronization event responsive to detecting the second thread encountering the first synchronization control point.
Claim 17
Dependent Claim 134 words
A program product, comprising: a first program configured to execute a portion of a second program for debugging, the second program including a first thread and a second thread, and the first program further configured to locate an entry address as a first synchronization control point for a first critical section in the first program, to store in a break point table an op code and the entry address, to store an instruction configured to interrupt program execution at the entry address, to store in the break point table a synchronization condition associated with the first synchronization control point, and to conditionally suspend execution of the first thread at the first synchronization control point while continuing execution of a second thread pending a predetermined synchronization event; and a signal bearing media bearing the program.
Claim 18
Dependent Claim 134 words
A program product, comprising: a first program configured to execute a portion of a second program for debugging, the second program including a first thread and a second thread, and the first program further configured to locate an entry address as a first synchronization control point for a first critical section in the first program, to store in a break point table an op code and the entry address, to store an instruction configured to interrupt program execution at the entry address, to store in the break point table a synchronization condition associated with the first synchronization control point, and to conditionally suspend execution of the first thread at the first synchronization control point while continuing execution of a second thread pending a predetermined synchronization event; and a signal bearing media bearing the program.
Claim 19
Dependent Claim 16 words
The program product of claim 15 , wherein the signal bearing media includes transmission type media.
Claim 20
Dependent Claim 15 words
The program product of claim 15 , wherein the signal bearing media includes recordable media.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-04-22 2005-10-22 2006-04-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-04-22 2009-10-22 2010-04-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-04-22 2013-10-22 2014-04-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag