//===-- MemoryUsage.cpp ---------------------------------------------------===// // // The KLEE Symbolic Virtual Machine // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "klee/Internal/System/MemoryUsage.h" #include using namespace klee; size_t util::GetTotalMallocUsage() { struct mallinfo mi = ::mallinfo(); // The malloc implementation in glibc (pmalloc2) // does not include mmap()'ed memory in mi.uordblks // but other implementations (e.g. tcmalloc) do. #if defined(__GLIBC__) return mi.uordblks + mi.hblkhd; #else return mi.uordblks; #endif }