Logging.h revision 317032
1301169Slidl//===-- Logging.h -----------------------------------------------*- C++ -*-===//
2301169Slidl//
3301169Slidl//                     The LLVM Compiler Infrastructure
4301169Slidl//
5301169Slidl// This file is distributed under the University of Illinois Open Source
6301169Slidl// License. See LICENSE.TXT for details.
7301169Slidl//
8301169Slidl//===----------------------------------------------------------------------===//
9301169Slidl
10301169Slidl#ifndef LLDB_UTILITY_LOGGING_H
11#define LLDB_UTILITY_LOGGING_H
12
13#include <cstdint>
14
15//----------------------------------------------------------------------
16// Log Bits specific to logging in lldb
17//----------------------------------------------------------------------
18#define LIBLLDB_LOG_PROCESS (1u << 1)
19#define LIBLLDB_LOG_THREAD (1u << 2)
20#define LIBLLDB_LOG_DYNAMIC_LOADER (1u << 3)
21#define LIBLLDB_LOG_EVENTS (1u << 4)
22#define LIBLLDB_LOG_BREAKPOINTS (1u << 5)
23#define LIBLLDB_LOG_WATCHPOINTS (1u << 6)
24#define LIBLLDB_LOG_STEP (1u << 7)
25#define LIBLLDB_LOG_EXPRESSIONS (1u << 8)
26#define LIBLLDB_LOG_TEMPORARY (1u << 9)
27#define LIBLLDB_LOG_STATE (1u << 10)
28#define LIBLLDB_LOG_OBJECT (1u << 11)
29#define LIBLLDB_LOG_COMMUNICATION (1u << 12)
30#define LIBLLDB_LOG_CONNECTION (1u << 13)
31#define LIBLLDB_LOG_HOST (1u << 14)
32#define LIBLLDB_LOG_UNWIND (1u << 15)
33#define LIBLLDB_LOG_API (1u << 16)
34#define LIBLLDB_LOG_SCRIPT (1u << 17)
35#define LIBLLDB_LOG_COMMANDS (1U << 18)
36#define LIBLLDB_LOG_TYPES (1u << 19)
37#define LIBLLDB_LOG_SYMBOLS (1u << 20)
38#define LIBLLDB_LOG_MODULES (1u << 21)
39#define LIBLLDB_LOG_TARGET (1u << 22)
40#define LIBLLDB_LOG_MMAP (1u << 23)
41#define LIBLLDB_LOG_OS (1u << 24)
42#define LIBLLDB_LOG_PLATFORM (1u << 25)
43#define LIBLLDB_LOG_SYSTEM_RUNTIME (1u << 26)
44#define LIBLLDB_LOG_JIT_LOADER (1u << 27)
45#define LIBLLDB_LOG_LANGUAGE (1u << 28)
46#define LIBLLDB_LOG_DATAFORMATTERS (1u << 29)
47#define LIBLLDB_LOG_DEMANGLE (1u << 30)
48#define LIBLLDB_LOG_ALL (UINT32_MAX)
49#define LIBLLDB_LOG_DEFAULT                                                    \
50  (LIBLLDB_LOG_PROCESS | LIBLLDB_LOG_THREAD | LIBLLDB_LOG_DYNAMIC_LOADER |     \
51   LIBLLDB_LOG_BREAKPOINTS | LIBLLDB_LOG_WATCHPOINTS | LIBLLDB_LOG_STEP |      \
52   LIBLLDB_LOG_STATE | LIBLLDB_LOG_SYMBOLS | LIBLLDB_LOG_TARGET |              \
53   LIBLLDB_LOG_COMMANDS)
54
55namespace lldb_private {
56
57class Log;
58
59void LogIfAnyCategoriesSet(uint32_t mask, const char *format, ...);
60
61Log *GetLogIfAllCategoriesSet(uint32_t mask);
62
63Log *GetLogIfAnyCategoriesSet(uint32_t mask);
64
65void InitializeLog();
66
67} // namespace lldb_private
68
69#endif // LLDB_UTILITY_LOGGING_H
70