1. A method of debugging a transactional memory based representation of a code in a multi-threaded, transactional memory system, the method comprising: setting a breakpoint on an operation in an atomic block of the transactional memory based code representation; wherein the atomic block comprises a plurality of memory operations to a shared memory; and wherein the system is configured to execute the atomic block atomically with respect to an other concurrent thread of execution having access to the shared memory; and directing execution to a first code path instead of a second code path for the atomic block due to the breakpoint.