Debugging programs that use atomic blocks and transactional memory

  • Zyulkyarov F
  • Harris T
  • Unsal O
 et al. 
  • 21


    Mendeley users who have this article in their library.
  • 10


    Citations of this article.


With the emergence of research prototypes, programming using atomic blocks and transactional memory (TM) is becoming more attractive. This paper describes our experience building and using a debugger for programs written with these abstractions.We intro- duce three approaches: (i) debugging at the level of atomic blocks, where the programmer is shielded from implementation details (such as exactly what kind of TM is used, or indeed whether lock inference is used instead), (ii) debugging at the level of transac- tions, where conflict rates, read sets, write sets, and other TMinter- nals are visible, and (iii) debug-time transactions,which let the pro- grammer manipulate synchronization from within the debugger— e.g., enlarging the scope of an atomic block to try to identify a bug. In this paper we explain the rationale behind the new debugging approaches that we propose.We describe the design and implemen- tation of an extension to the WinDbg debugger, enabling support for C# programs using atomic blocks and TM.We also demonstrate the design of a “conflict point discovery” technique for identifying program statements that introduce contention between transactions. We illustrate how these techniques can be used by optimizing a C# version of the Genome application from STAMP TM benchmark suite.

Author-supplied keywords

  • debugging
  • transactional memory

Get free article suggestions today

Mendeley saves you time finding and organizing research

Sign up here
Already have an account ?Sign in

Find this document


  • Ferad Zyulkyarov

  • Tim Harris

  • Osman S. Unsal

  • Adrían Cristal

  • Mateo Valero

Cite this document

Choose a citation style from the tabs below

Save time finding and organizing research with Mendeley

Sign up for free