aboutsummaryrefslogtreecommitdiff
path: root/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.h
blob: 4802f858f3a11c640f8276122f7fd83958c3e01b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//===-- LogChannelDWARF.h ---------------------------------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef SymbolFileDWARF_LogChannelDWARF_h_
#define SymbolFileDWARF_LogChannelDWARF_h_

// C Includes
// C++ Includes
// Other libraries and framework includes
// Project includes
#include "lldb/Core/Log.h"

#define DWARF_LOG_VERBOSE (1u << 0)
#define DWARF_LOG_DEBUG_INFO (1u << 1)
#define DWARF_LOG_DEBUG_LINE (1u << 2)
#define DWARF_LOG_DEBUG_PUBNAMES (1u << 3)
#define DWARF_LOG_DEBUG_PUBTYPES (1u << 4)
#define DWARF_LOG_DEBUG_ARANGES (1u << 5)
#define DWARF_LOG_LOOKUPS (1u << 6)
#define DWARF_LOG_TYPE_COMPLETION (1u << 7)
#define DWARF_LOG_DEBUG_MAP (1u << 8)
#define DWARF_LOG_ALL (UINT32_MAX)
#define DWARF_LOG_DEFAULT (DWARF_LOG_DEBUG_INFO)

class LogChannelDWARF : public lldb_private::LogChannel {
public:
  LogChannelDWARF();

  ~LogChannelDWARF() override;

  static void Initialize();

  static void Terminate();

  static lldb_private::ConstString GetPluginNameStatic();

  static const char *GetPluginDescriptionStatic();

  static lldb_private::LogChannel *CreateInstance();

  lldb_private::ConstString GetPluginName() override;

  uint32_t GetPluginVersion() override;

  void Disable(const char **categories,
               lldb_private::Stream *feedback_strm) override;

  void Delete();

  bool Enable(lldb::StreamSP &log_stream_sp, uint32_t log_options,
              lldb_private::Stream
                  *feedback_strm, // Feedback stream for argument errors etc
              const char **categories) override; // The categories to enable
                                                 // within this logging stream,
                                                 // if empty, enable default set

  void ListCategories(lldb_private::Stream *strm) override;

  static lldb_private::Log *GetLog();

  static lldb_private::Log *GetLogIfAll(uint32_t mask);

  static lldb_private::Log *GetLogIfAny(uint32_t mask);

  static void LogIf(uint32_t mask, const char *format, ...);
};

#endif // SymbolFileDWARF_LogChannelDWARF_h_