(root)/
gcc-13.2.0/
libsanitizer/
sanitizer_common/
sanitizer_dbghelp.h
       1  //===-- sanitizer_dbghelp.h ------------------------------*- C++ -*-===//
       2  //
       3  // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
       4  // See https://llvm.org/LICENSE.txt for license information.
       5  // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
       6  //
       7  //===----------------------------------------------------------------------===//
       8  //
       9  // Wrappers for lazy loaded dbghelp.dll. Provides function pointers and a
      10  // callback to initialize them.
      11  //
      12  //===----------------------------------------------------------------------===//
      13  
      14  #ifndef SANITIZER_SYMBOLIZER_WIN_H
      15  #define SANITIZER_SYMBOLIZER_WIN_H
      16  
      17  #if !SANITIZER_WINDOWS
      18  #error "sanitizer_dbghelp.h is a Windows-only header"
      19  #endif
      20  
      21  #define WIN32_LEAN_AND_MEAN
      22  #include <windows.h>
      23  #include <dbghelp.h>
      24  
      25  namespace __sanitizer {
      26  
      27  extern decltype(::StackWalk64) *StackWalk64;
      28  extern decltype(::SymCleanup) *SymCleanup;
      29  extern decltype(::SymFromAddr) *SymFromAddr;
      30  extern decltype(::SymFunctionTableAccess64) *SymFunctionTableAccess64;
      31  extern decltype(::SymGetLineFromAddr64) *SymGetLineFromAddr64;
      32  extern decltype(::SymGetModuleBase64) *SymGetModuleBase64;
      33  extern decltype(::SymGetSearchPathW) *SymGetSearchPathW;
      34  extern decltype(::SymInitialize) *SymInitialize;
      35  extern decltype(::SymSetOptions) *SymSetOptions;
      36  extern decltype(::SymSetSearchPathW) *SymSetSearchPathW;
      37  extern decltype(::UnDecorateSymbolName) *UnDecorateSymbolName;
      38  
      39  }  // namespace __sanitizer
      40  
      41  #endif  // SANITIZER_SYMBOLIZER_WIN_H