Home | History | Annotate | Download | only in sanitizer_common
      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