• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===-- ProcessWindowsLog.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 #ifndef liblldb_ProcessWindowsLog_h_
10 #define liblldb_ProcessWindowsLog_h_
11 
12 #include "lldb/Utility/Log.h"
13 
14 #define WINDOWS_LOG_PROCESS (1u << 1)     // Log process operations
15 #define WINDOWS_LOG_EXCEPTION (1u << 1)   // Log exceptions
16 #define WINDOWS_LOG_THREAD (1u << 2)      // Log thread operations
17 #define WINDOWS_LOG_MEMORY (1u << 3)      // Log memory reads/writes calls
18 #define WINDOWS_LOG_BREAKPOINTS (1u << 4) // Log breakpoint operations
19 #define WINDOWS_LOG_STEP (1u << 5)        // Log step operations
20 #define WINDOWS_LOG_REGISTERS (1u << 6)   // Log register operations
21 #define WINDOWS_LOG_EVENT (1u << 7)       // Low level debug events
22 
23 namespace lldb_private {
24 class ProcessWindowsLog {
25   static Log::Channel g_channel;
26 
27 public:
28   static void Initialize();
29   static void Terminate();
30 
GetLogIfAny(uint32_t mask)31   static Log *GetLogIfAny(uint32_t mask) { return g_channel.GetLogIfAny(mask); }
32 };
33 }
34 
35 #endif // liblldb_ProcessWindowsLog_h_
36