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

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

Abstract

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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)MATHCrossRefGoogle 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, http://code.google.com/p/jchord
  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