A system that facilitates debugging of a computing cluster and/or
distributed applications environment. A debugger component receives a
debugging expression, and a constraint component includes both a static
constraint engine (SCE) and a dynamic constraint engine (DCE) processes
the debugging expression to automatically perform a debugging process on
at least two processes of a plurality of processes. When the user creates
a tracepoint or constraint breakpoint the expression is sent directly to
the SCE, which parses the constraint and tracepoint expressions, reduces
the expression by evaluating parts of the expression based on static
values (such as process ID or filename), and passes the remainder on to
each of the applicable DCEs. The DCEs register a breakpoint at the
applicable location in the process, and upon receiving a breakpoint
event, evaluates the remainder of the constraint expression on the
dynamic data, and sends log and/or break event data back to the user for
viewing.