Author :
Nethercote, Nicholas ; Walsh, Robert ; Fitzhardinge, Jeremy
Abstract :
Summary form only given. Workload characterization relies heavily on robust and powerful tools to quickly and accurately gather and analyse large amounts of data about program executions. Valgrind is a dynamic binary instrumentation framework for building program analysis tools. Valgrind is best known for a tool, Memcheck, that finds memory errors common in C and C++ programs, but its ability to instrument every instruction and system call a program executes, and inspect every value a program manipulates, without slowing down program execution excessively, makes it an excellent platform for buildings tools suitable for workload characterization. In this tutorial, we introduce Valgrind, describing how you can use it to create powerful tools for doing profiling and trace collection, and to help characterize how workloads affect different machine aspects such as instruction set architecture, the memory hierarchy, and I/O. Valgrind provides powerful analysis tools without excessive slow-down, which allows very large workloads to be analysed easily. Valgrind is open-source (GPL) software, available on x86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux, and work is underway to support other platforms. Valgrind tools are regularly used by the developers of many software packages, such as Firefox, OpenOffice, KDE, GNOME, MySQL, Perl, Python, PHP, Samba, RenderMan, SAS, The GIMP, Unreal Tournament, Squid, plus many scientific applications
Keywords :
program diagnostics; public domain software; software tools; storage management; system monitoring; C programs; C++ programs; Memcheck; Valgrind; data analysis; dynamic binary instrumentation; instruction set architecture; memory errors; memory hierarchy; open-source software; program analysis tools; program executions; workload characterization tools; Application software; Buildings; Computer architecture; Instruments; Linux; Memory architecture; Open source software; Robustness; Software packages; Synthetic aperture sonar;