1 //===-- LLDBLog.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 LLDB_UTILITY_LLDBLOG_H
10 #define LLDB_UTILITY_LLDBLOG_H
11 
12 #include "lldb/Utility/Log.h"
13 #include "llvm/ADT/BitmaskEnum.h"
14 #include <cstdint>
15 
16 namespace lldb_private {
17 
18 enum class LLDBLog : Log::MaskType {
19   API = Log::ChannelFlag<0>,
20   AST = Log::ChannelFlag<1>,
21   Breakpoints = Log::ChannelFlag<2>,
22   Commands = Log::ChannelFlag<3>,
23   Communication = Log::ChannelFlag<4>,
24   Connection = Log::ChannelFlag<5>,
25   DataFormatters = Log::ChannelFlag<6>,
26   Demangle = Log::ChannelFlag<7>,
27   DynamicLoader = Log::ChannelFlag<8>,
28   Events = Log::ChannelFlag<9>,
29   Expressions = Log::ChannelFlag<10>,
30   Host = Log::ChannelFlag<11>,
31   JITLoader = Log::ChannelFlag<12>,
32   Language = Log::ChannelFlag<13>,
33   MMap = Log::ChannelFlag<14>,
34   Modules = Log::ChannelFlag<15>,
35   Object = Log::ChannelFlag<16>,
36   OS = Log::ChannelFlag<17>,
37   Platform = Log::ChannelFlag<18>,
38   Process = Log::ChannelFlag<19>,
39   Script = Log::ChannelFlag<20>,
40   State = Log::ChannelFlag<21>,
41   Step = Log::ChannelFlag<22>,
42   Symbols = Log::ChannelFlag<23>,
43   SystemRuntime = Log::ChannelFlag<24>,
44   Target = Log::ChannelFlag<25>,
45   Temporary = Log::ChannelFlag<26>,
46   Thread = Log::ChannelFlag<27>,
47   Types = Log::ChannelFlag<28>,
48   Unwind = Log::ChannelFlag<29>,
49   Watchpoints = Log::ChannelFlag<30>,
50   OnDemand = Log::ChannelFlag<31>,
51   Source = Log::ChannelFlag<32>,
52   LLVM_MARK_AS_BITMASK_ENUM(OnDemand),
53 };
54 
55 LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
56 
57 void InitializeLldbChannel();
58 
59 template <> Log::Channel &LogChannelFor<LLDBLog>();
60 } // namespace lldb_private
61 
62 #endif // LLDB_UTILITY_LLDBLOG_H
63