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

Method of walking-up a call stack for a client/server program that uses remote procedure call

Assignee: International Business Machines Corp
•
Filing: 1998-07-13
•
Granted: 1999-10-19
•
Expires: 2018-07-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract When displaying the caller stack of a distributed client/server program that uses Remote Procedure Calls (RPC), the user is provided the capability of viewing the RPC calls in the same manner as normal procedure calls. When a breakpoint is encountered in an RPC server program while using a debugger for distributed programs, the call stacks for the client and server program are appended together into a single distributed call stack. In the case of nested RPC calls (e.g. program A executes an RPC call to program B which executes an RPC call to C and so on) all of the call stacks are appended together in the order they were created. The distributed call stack may span many programs, threads of execution, and computing machines. The distributed call stack may be used to select a routine from the call stack when setting a context for a tool that displays program state information. For example, when the user selects a particular routine from the distributed call stack, the source listing, variables that are currently in scope, and thread executing the routine may be shown in various display windows.

Inventors

  • 👤 Michael S. Meier

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 10:59
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3698; G06F11/362; G06F11/3632; G06F11/3636; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/547

Claims Analysis

Total Claims: 15
Claim 1
Independent Claim 123 words
A method for debugging a distributed computer program comprising a client program executing on a first portion of a distributed data processing system and a server program executing on a second portion of the distributed data processing system, said method comprising the steps of: (a) determining a first call stack on the first portion of the distributed data processing system of the client program by use of a debugger; (b) determining a second call stack on the second portion of the distributed data processing system of the server program by use of the debugger; and (c) appending the first call stack and second call stack together on the first portion of the distributed data processing system to form a single distributed call stack.
Claim 2
Independent Claim 123 words
A method for debugging a distributed computer program comprising a client program executing on a first portion of a distributed data processing system and a server program executing on a second portion of the distributed data processing system, said method comprising the steps of: (a) determining a first call stack on the first portion of the distributed data processing system of the client program by use of a debugger; (b) determining a second call stack on the second portion of the distributed data processing system of the server program by use of the debugger; and (c) appending the first call stack and second call stack together on the first portion of the distributed data processing system to form a single distributed call stack.
Claim 3
Dependent Claim 26 words
The method of claim 1 further comprising the step of displaying on the first portion of the distributed data processing system the single distributed call stack.
Claim 4
Dependent Claim 38 words
The method of claim 1 further comprising the step of: determining the second call stack on the second portion of the distributed data processing system of the server program by evaluating remote procedure call (RPC) run-time data structures.
Claim 5
Dependent Claim 152 words
The method of claim 3 further comprising the steps of: (a) setting a current context to a context where a breakpoint occurs; (b) walking up a call stack of the current context; (c) for each routine in the current context call stack, determining if it is a server dispatch routine, and if it's not a server dispatch routine, outputting the program name and continuing up the current context call stack, and if it is a server dispatch routine, obtaining a context of a client dispatched by the server dispatch routine, and setting the current context to the context of the dispatched client; (d) walking up a call stack of the current context of the dispatched client; and (e) for each routine in the call stack of the current context of the dispatched client, determining if it is a client call, and if it is a client call, looping back to step (a).
Claim 6
Dependent Claim 132 words
A distributed data processing system for debugging a distributed computer program comprising a client program executing on a first portion of a distributed data processing system and a server program executing on a second portion of the distributed data processing system, said distributed data processing system comprising: (a) means for determining a first call stack on the first portion of the distributed data processing system of the client program by use of a debugger; (b) means for determining a second call stack on the second portion of the distributed data processing system of the server program by use of the debugger; and (c) means for appending the first call stack and second call stack together on the first portion of the distributed data processing system to form a single distributed call stack.
Claim 7
Dependent Claim 132 words
A distributed data processing system for debugging a distributed computer program comprising a client program executing on a first portion of a distributed data processing system and a server program executing on a second portion of the distributed data processing system, said distributed data processing system comprising: (a) means for determining a first call stack on the first portion of the distributed data processing system of the client program by use of a debugger; (b) means for determining a second call stack on the second portion of the distributed data processing system of the server program by use of the debugger; and (c) means for appending the first call stack and second call stack together on the first portion of the distributed data processing system to form a single distributed call stack.
Claim 8
Dependent Claim 25 words
The system of claim 5 further comprising means for displaying on the first portion of the distributed data processing system the single distributed call stack.
Claim 9
Dependent Claim 37 words
The system of claim 5 further comprising: means for determining the second call stack on the second portion of the distributed data processing system of the server program by evaluating remote procedure call (RPC) run-time data structures.
Claim 10
Dependent Claim 165 words
The system of claim 7 further comprising: (a) means for setting a current context to a context where a breakpoint occurs; (b) means for walking up a call stack of the current context; (c) means for determining for each routine in the current context call stack, if it is a server dispatch routine, and if it's not a server dispatch routine, means for outputting the program name and continuing up the current context call stack, and if it is a server dispatch routine, means for obtaining a context of a client dispatched by the server dispatch routine, and setting the current context to the context of the dispatched client; (d) means for walking up a call stack of the current context of the dispatched client; and (e) means for determining for each routine in the call stack of the current context of the dispatched client, if it is a client call, and if it is a client call, means for looping back to means (a).
Claim 11
Dependent Claim 152 words
An article of manufacture for use in a distributed data processing system for debugging a distributed computer program comprising a client program executing on a first portion of a distributed data processing system and a server program executing on a second portion of the distributed data processing system, said article of manufacture comprising a computer-readable storage medium having a computer program embodied in said medium which causes the distributed data processing system to: (a) determine a first call stack on the first portion of the distributed data processing system of the client program by use of a debugger; (b) determine a second call stack on the second portion of the distributed data processing system of the server program by use of the debugger; and (c) append the first call stack and second call stack together on the first portion of the distributed data processing system to form a single distributed call stack.
Claim 12
Dependent Claim 152 words
An article of manufacture for use in a distributed data processing system for debugging a distributed computer program comprising a client program executing on a first portion of a distributed data processing system and a server program executing on a second portion of the distributed data processing system, said article of manufacture comprising a computer-readable storage medium having a computer program embodied in said medium which causes the distributed data processing system to: (a) determine a first call stack on the first portion of the distributed data processing system of the client program by use of a debugger; (b) determine a second call stack on the second portion of the distributed data processing system of the server program by use of the debugger; and (c) append the first call stack and second call stack together on the first portion of the distributed data processing system to form a single distributed call stack.
Claim 13
Dependent Claim 35 words
The article of manufacture of claim 9 wherein said computer program further causes the distributed data processing system to display on the first portion of the distributed data processing system the single distributed call stack.
Claim 14
Dependent Claim 47 words
The article of manufacture of claim 9 wherein said computer program further causes the distributed data processing system to: determine the second call stack on the second portion of the distributed data processing system of the server program by evaluating remote procedure call (RPC) run-time data structures.
Claim 15
Dependent Claim 160 words
The article of manufacture of claim 11 wherein said computer program further causes the distributed data processing system to: (a) set a current context to a context where a breakpoint occurs; (b) walk up a call stack of the current context; (c) determine for each routine in the current context call stack, if it is a server dispatch routine, and if it's not a server dispatch routine, output the program name and continue up the current context call stack, and if it is a server dispatch routine, obtain a context of a client dispatched by the server dispatch routine, and set the current context to the context of the dispatched client; (d) walk up a call stack of the current context of the dispatched client; and (e) determine for each routine in the call stack of the current context of the dispatched client, if it is a client call, and if it is a client call, loop back to (a).

References Cited (Backward Citations)

US5127103A Cited
US5361352A Cited
US5319645A Cited
US5371746A Cited
US5410648A Cited
JPH0573367A Cited
US5659701A Cited
US5455953A Cited
US5553242A Cited
US5404523A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-10-18 2003-04-19 2003-10-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-10-18 2007-04-19 2007-10-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-10-18 2011-04-19 2011-10-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag