blob: 084b901b326c10b20b582420281ce652eed87772 [file] [log] [blame]
Andrew Scull5e1ddfa2018-08-14 10:06:54 +01001//===- 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_SUPPORT_VALGRIND_H
17#define LLVM_SUPPORT_VALGRIND_H
18
19#include <cstddef>
20
21namespace llvm {
22namespace 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} // namespace sys
30} // end namespace llvm
31
32#endif // LLVM_SUPPORT_VALGRIND_H