• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===-- sanitizer_stackdepot.h ----------------------------------*- 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 // This file is shared between AddressSanitizer and ThreadSanitizer
11 // run-time libraries.
12 //===----------------------------------------------------------------------===//
13 #ifndef SANITIZER_STACKDEPOT_H
14 #define SANITIZER_STACKDEPOT_H
15 
16 #include "sanitizer_internal_defs.h"
17 
18 namespace __sanitizer {
19 
20 // StackDepot efficiently stores huge amounts of stack traces.
21 
22 // Maps stack trace to an unique id.
23 u32 StackDepotPut(const uptr *stack, uptr size);
24 // Retrieves a stored stack trace by the id.
25 const uptr *StackDepotGet(u32 id, uptr *size);
26 
27 struct StackDepotStats {
28   uptr n_uniq_ids;
29   uptr mapped;
30 };
31 
32 StackDepotStats *StackDepotGetStats();
33 
34 }  // namespace __sanitizer
35 
36 #endif  // SANITIZER_STACKDEPOT_H
37