sanitizer_stackdepot.h revision 251034
1245614Sandrew//===-- sanitizer_stackdepot.h ----------------------------------*- C++ -*-===// 2245614Sandrew// 3245614Sandrew// The LLVM Compiler Infrastructure 4245614Sandrew// 5245614Sandrew// This file is distributed under the University of Illinois Open Source 6245614Sandrew// License. See LICENSE.TXT for details. 7245614Sandrew// 8245614Sandrew//===----------------------------------------------------------------------===// 9245614Sandrew// 10245614Sandrew// This file is shared between AddressSanitizer and ThreadSanitizer 11245614Sandrew// run-time libraries. 12245614Sandrew//===----------------------------------------------------------------------===// 13245614Sandrew#ifndef SANITIZER_STACKDEPOT_H 14245614Sandrew#define SANITIZER_STACKDEPOT_H 15245614Sandrew 16251034Sed#include "sanitizer_internal_defs.h" 17245614Sandrew 18245614Sandrewnamespace __sanitizer { 19245614Sandrew 20245614Sandrew// StackDepot efficiently stores huge amounts of stack traces. 21245614Sandrew 22245614Sandrew// Maps stack trace to an unique id. 23245614Sandrewu32 StackDepotPut(const uptr *stack, uptr size); 24245614Sandrew// Retrieves a stored stack trace by the id. 25245614Sandrewconst uptr *StackDepotGet(u32 id, uptr *size); 26245614Sandrew 27245614Sandrewstruct StackDepotStats { 28245614Sandrew uptr n_uniq_ids; 29245614Sandrew uptr mapped; 30245614Sandrew}; 31245614Sandrew 32245614SandrewStackDepotStats *StackDepotGetStats(); 33245614Sandrew 34245614Sandrew} // namespace __sanitizer 35245614Sandrew 36245614Sandrew#endif // SANITIZER_STACKDEPOT_H 37