← Back to Patent Explorer
US5687375A Expired / Lapsed US ⏱️ 0.0 years remaining

Debugging of High Performance Fortran programs with backup breakpoints

Assignee: International Business Machines Corp
•
Filing: 1994-10-14
•
Granted: 1997-11-11
•
Expires: 2014-10-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract This invention is a debugger for HPF-like languages which can be implemented on top of basically any debugger. A primary feature of the debugger is the use of backup breakpoints to generate a program status which is similar to a program status in a sequential execution of the code and the back and forth mapping between processor variables. This debugger requires some new debugging information which must be provided by the compiler. It then allows debugging from a sequential point of view.

Inventors

  • 👤 Uwe Schwiegelshohn

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 14:59
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362

Claims Analysis

Total Claims: 8
Claim 1
Independent Claim 306 words
A method to support detection of errors in high level parallel source code, wherein the parallel source code is compiled into object code and a plurality of processes each execute a copy of said object code with different data in parallel, comprising the steps of: defining a breakpoint in the parallel source code; translating the breakpoint into a corresponding breakpoint in each said copy of the object code, each said corresponding breakpoint standing in a defined relationship to one another; inserting a backup breakpoint into each said copy of the object code at a nearest location after the corresponding breakpoint in said each copy that will be guaranteed to be encountered by the process executing said each copy if any one of said processes encounters one of said corresponding breakpoints while executing one of said copies and said process executing said each copy does not encounter said corresponding breakpoint in said each copy; iteratively: executing the copies of the object code in parallel by said processes until the corresponding breakpoint or the backup breakpoint in each said copy is encountered by the process executing said each copy; pausing execution of said each copy by the process executing said each copy at the corresponding breakpoint or the backup breakpoint in said each copy, whichever is encountered first; evaluating the status of all said processes and automatically resuming execution of said copies of the object code in parallel by said processes if execution of each of said copies is stopped at the backup breakpoint thereof; allowing user interaction with the paused processes and user evaluation and modification of program status data; and resuming execution of the copies of the object code in parallel by said processes on user request until a next breakpoint or a next backup breakpoint or a code termination is encountered by each said process.
Claim 2
Independent Claim 306 words
A method to support detection of errors in high level parallel source code, wherein the parallel source code is compiled into object code and a plurality of processes each execute a copy of said object code with different data in parallel, comprising the steps of: defining a breakpoint in the parallel source code; translating the breakpoint into a corresponding breakpoint in each said copy of the object code, each said corresponding breakpoint standing in a defined relationship to one another; inserting a backup breakpoint into each said copy of the object code at a nearest location after the corresponding breakpoint in said each copy that will be guaranteed to be encountered by the process executing said each copy if any one of said processes encounters one of said corresponding breakpoints while executing one of said copies and said process executing said each copy does not encounter said corresponding breakpoint in said each copy; iteratively: executing the copies of the object code in parallel by said processes until the corresponding breakpoint or the backup breakpoint in each said copy is encountered by the process executing said each copy; pausing execution of said each copy by the process executing said each copy at the corresponding breakpoint or the backup breakpoint in said each copy, whichever is encountered first; evaluating the status of all said processes and automatically resuming execution of said copies of the object code in parallel by said processes if execution of each of said copies is stopped at the backup breakpoint thereof; allowing user interaction with the paused processes and user evaluation and modification of program status data; and resuming execution of the copies of the object code in parallel by said processes on user request until a next breakpoint or a next backup breakpoint or a code termination is encountered by each said process.
Claim 3
Dependent Claim 44 words
The method of claim 1, wherein the breakpoint is positioned within a partition of the parallel source code, and the backup breakpoint is positioned in each said copy of the object code directly after the end of a largest partition completely including this partition.
Claim 4
Dependent Claim 46 words
The method of claim 1, wherein the location of the breakpoint in a control flow graph corresponding to said parallel source code is postdominated by the location in the control flow graph that corresponds to the backup breakpoint in said each copy of the object code.
Claim 5
Dependent Claim 89 words
The method of claim 1, further comprising the steps of: introducing one or more additional backup breakpoints into said each copy of the object code at locations between the corresponding breakpoint and the backup breakpoint thereof; each said additional backup breakpoint being positioned directly after the end of a partition completely including the partition of the corresponding breakpoint and being completely included by the partition of the backup breakpoint; and all said additional backup breakpoints lying within an all execution path from the corresponding breakpoint to the backup breakpoint.
Claim 6
Dependent Claim 29 words
The method of claim 1, wherein the processes each comprise a procedure, and wherein the corresponding breakpoint resides in the procedure and said backup breakpoint resides outside the procedure.
Claim 7
Independent Claim 131 words
A method for interrupting execution of a parallel program at a loop and sequentially processing the loop, comprising the steps of: defining a sequentialization breakpoint in a loop of the parallel program, the sequentialization breakpoint demarking the beginning of a loop in the parallel program to be executed sequentially; defining exit breakpoints immediately following each exit statement of the loop to be executed sequentially, each exit breakpoint acting as a breakpoint which interrupts processing in processes having completed the execution of an iteration of the loop to be executed sequentially; and defining a backup breakpoint at the end of the smallest partition in which the loop to be sequentialized is completely included, the backup breakpoint acting as a breakpoint which interrupts processing in processes not executing an iteration of the loop.
Claim 8
Independent Claim 131 words
A method for interrupting execution of a parallel program at a loop and sequentially processing the loop, comprising the steps of: defining a sequentialization breakpoint in a loop of the parallel program, the sequentialization breakpoint demarking the beginning of a loop in the parallel program to be executed sequentially; defining exit breakpoints immediately following each exit statement of the loop to be executed sequentially, each exit breakpoint acting as a breakpoint which interrupts processing in processes having completed the execution of an iteration of the loop to be executed sequentially; and defining a backup breakpoint at the end of the smallest partition in which the loop to be sequentialized is completely included, the backup breakpoint acting as a breakpoint which interrupts processing in processes not executing an iteration of the loop.

References Cited (Backward Citations)

US3937938A Cited
US4080650A Cited
US5249278A Cited
US4866665A Cited
US4819233A Cited
US5127103A Cited
US5165036A Cited
US5048018A Cited
US5093914A Cited
US5050168A Cited
US5193187A Cited
US5438574A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-11-10 2001-05-12 2001-11-11 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-11-10 2005-05-12 2005-11-11 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-11-10 2009-05-12 2009-11-11 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag