Unfortunately you cannot debug a transaction as it closely related to the thread that started it. Debugging initiates a unique thread for each step and so your transaction is getting lost.
The only work around is to avoid stepping into code that has transactions, and use debugLog instead to follow what is happening. You should try and isolate this type of code as much as possible i.e. place it in a child service/sequence.