1 //===- llvm/Support/Valgrind.h - Communication with Valgrind -----*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // Methods for communicating with a valgrind instance this program is running 11 // under. These are all no-ops unless LLVM was configured on a system with the 12 // valgrind headers installed and valgrind is controlling this process. 13 // 14 //===----------------------------------------------------------------------===// 15 16 #ifndef LLVM_SYSTEM_VALGRIND_H 17 #define LLVM_SYSTEM_VALGRIND_H 18 19 #include <stddef.h> 20 21 namespace llvm { 22 namespace sys { 23 // True if Valgrind is controlling this process. 24 bool RunningOnValgrind(); 25 26 // Discard valgrind's translation of code in the range [Addr .. Addr + Len). 27 // Otherwise valgrind may continue to execute the old version of the code. 28 void ValgrindDiscardTranslations(const void *Addr, size_t Len); 29 } 30 } 31 32 #endif 33