×

Breakpoint logging and constraint mechanisms for parallel computing systems

  • US 7,634,761 B2
  • Filed: 10/29/2004
  • Issued: 12/15/2009
  • Est. Priority Date: 10/29/2004
  • Status: Active Grant
First Claim
Patent Images

1. A system that facilitates debugging an application with parallel processes running on several machines in a computing cluster or distributed applications environment, the system comprising:

  • a memory;

    a plurality of machines, which are executing the application in parallel;

    a plurality of application processes, running in parallel, including at least one application process running on each of the plurality of machines;

    a debugger user interface engine;

    a debugging engine that receives a debugging expression from the debugger user interface engine and that transmits log data and break event data back to the debugger user interface engine, wherein the received debugging expression comprises at least one of a tracepoint expression and a constraint expression, wherein the debugging engine processes the debugging expression to automatically perform a debugging process on at least two application processes of the plurality of application processes, and wherein the debugging engine comprisesa static constraint engine; and

    a plurality of dynamic constraint engines that interface to the static constraint engine, wherein for each machine of the plurality of machines there is at least one corresponding dynamic constraint engine, and wherein each of the plurality of dynamic constraint engines is associated with one or more of the at least one application processes running on the machine;

    wherein when a user creates the debugging expression via the debugger user interface, the debugging expression is sent directly to the static constraint engine;

    wherein the static constraint engine receives and parses the debugging expression, reducing the expression by evaluating parts of the expression based on static values, extracting static information, and treating asambiguous any term that relies on a variable whose value is not yet known,wherein the static constraint engine automatically generates, for the received debugging expression, breakpoint information corresponding to a breakpoint or a tracepoint, wherein the breakpoint information includes may-break/must-break/must-not-break information, and the static constraint engine forwards the breakpoint information to at least one selected dynamic constraint engine of the plurality of dynamic constraint engines when it is determined that the breakpoint or tracepoint is reachable by the one or more application processes associated with the selected dynamic constraint engine, such that the static constraint engine does not forward the breakpoint information to the selected dynamic constraint engine when the breakpoint or tracepoint is unreachable by the one or more associated application processes, and further wherein the static constraint engine forwards the breakpoint information to the selected dynamic constraint engine when interruption to the running application, as a whole, is below a predetermined interruption value, andwherein the selected dynamic constraint engine, upon receiving the breakpoint information from the static constraint engine, registers the corresponding breakpoint or tracepoint at one or more applicable locations in at least one of the one or more associated application processes, andwherein, the selected dynamic constraint engine, upon receiving a breakpoint event from one of the one or more associated application processes, evaluates dynamically the breakpoint event in light of the breakpoint information, wherein the selected dynamic constraint engine dynamically performs one of (i) applying the tracepoint to minimize a stop time associated with stopping the application process, sending a log back to the user interface engine for at least presentation to the user and storage, or (ii) applying the breakpoint and returning break event information to the user interface engine for presentation to the user.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×