ANaConDA: A Framework for Analysing Multi-threaded C/C++ Programs on the Binary Level

  • Jan Fiedor
  • Tomáš Vojnar
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7687)


This paper presents the ANaConDA framework that allows one to easily create dynamic analysers for analysing multi-threaded C/C++ programs on the binary level. ANaConDA also supports noise injection techniques to increase chances to find concurrency-related errors in testing runs. ANaConDA is built on top of the Intel’s framework PIN for instrumenting binary code. ANaConDA can be instantiated for dealing with programs using various thread models. Currently, it has been instantiated for programs using the pthread library as well as the Win32 API for dealing with threads.


Concurrent Program Data Race Monitor Function Binary Level Callback Function 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Edelstein, O., Farchi, E., Goldin, E., Nir, Y., Ratsaby, G., Ur, S.: Framework for Testing Multi-threaded Java Programs. Concurrency and Computation: Practice and Experience 15(3-5), 485–499 (2003)zbMATHCrossRefGoogle Scholar
  2. 2.
    Fiedor, J., Vojnar, T.: Noise-Based Testing and Analysis of Multi-threaded C/C++ Programs on the Binary Level. In: Proc. of PADTAD 2012. ACM Press (2012)Google Scholar
  3. 3.
    Flanagan, C., Freund, S.N.: The RoadRunner Dynamic Analysis Framework for Concurrent Programs. In: Proc. of PASTE 2010. ACM Press (2010)Google Scholar
  4. 4.
    Guo, P.J.: A Scalable Mixed-Level Approach to Dynamic Analysis of C and C++ Programs. Master’s thesis, Department of EECS, Cambridge, MA (May 5, 2006)Google Scholar
  5. 5.
    Joshi, P., Naik, M., Park, C.-S., Sen, K.: CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 675–681. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  6. 6.
    Letko, Z., Vojnar, T., Křena, B.: AtomRace: Data Race and Atomicity Violation Detector and Healer. In: Proc. of PADTAD 2008. ACM Press (2008)Google Scholar
  7. 7.
    Luk, C.-K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V.J., Hazelwood, K.: Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation. In: Proc. of PLDI 2005. ACM Press (2005)Google Scholar
  8. 8.
    Naik, M.: Chord: A Static and Dynamic Program Analysis Platform for Java Bytecode,
  9. 9.
    Nethercote, N., Seward, J.: Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation. In: Proc. of PLDI 2007. ACM Press (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Jan Fiedor
    • 1
  • Tomáš Vojnar
    • 1
  1. 1.IT4Innovations Centre of Excellence, FITBrno University of TechnologyCzech Republic

Personalised recommendations