1. A method comprising: receiving transaction data from a particular agent instrumented on a first one of a plurality of software components in a system, wherein the transaction data identifies characteristics observed by the particular agent during monitoring of the first software component during a transaction involving the first software component and a second one of the plurality of software components; identifying, using a data processing apparatus, a second thread running on the second software component, wherein the second thread is at least partially dependent on a first thread run on the first software component during the transaction, the second thread corresponds to code of the second software component with a conditional breakpoint, and the conditional breakpoint is to be triggered based on when the second thread falls within a defined transaction boundary for the system; using a data processing apparatus to determine, from the transaction data, that the second thread falls within the transaction boundary; and triggering the conditional breakpoint during debugging of the system to interrupt the second thread based on determining that the second thread falls within the transaction boundary.