LogChannelDWARF.h revision 296417
1//===-- LogChannelDWARF.h ---------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef SymbolFileDWARF_LogChannelDWARF_h_
11#define SymbolFileDWARF_LogChannelDWARF_h_
12
13// C Includes
14// C++ Includes
15// Other libraries and framework includes
16// Project includes
17#include "lldb/Core/Log.h"
18
19#define DWARF_LOG_VERBOSE           (1u << 0)
20#define DWARF_LOG_DEBUG_INFO        (1u << 1)
21#define DWARF_LOG_DEBUG_LINE        (1u << 2)
22#define DWARF_LOG_DEBUG_PUBNAMES    (1u << 3)
23#define DWARF_LOG_DEBUG_PUBTYPES    (1u << 4)
24#define DWARF_LOG_DEBUG_ARANGES     (1u << 5)
25#define DWARF_LOG_LOOKUPS           (1u << 6)
26#define DWARF_LOG_TYPE_COMPLETION   (1u << 7)
27#define DWARF_LOG_DEBUG_MAP         (1u << 8)
28#define DWARF_LOG_ALL               (UINT32_MAX)
29#define DWARF_LOG_DEFAULT           (DWARF_LOG_DEBUG_INFO)
30
31class LogChannelDWARF : public lldb_private::LogChannel
32{
33public:
34    LogChannelDWARF ();
35
36    ~LogChannelDWARF() override;
37
38    static void
39    Initialize();
40
41    static void
42    Terminate();
43
44    static lldb_private::ConstString
45    GetPluginNameStatic();
46
47    static const char *
48    GetPluginDescriptionStatic();
49
50    static lldb_private::LogChannel *
51    CreateInstance ();
52
53    lldb_private::ConstString
54    GetPluginName() override;
55
56    uint32_t
57    GetPluginVersion() override;
58
59    void
60    Disable(const char** categories, lldb_private::Stream *feedback_strm) override;
61
62    void
63    Delete ();
64
65    bool
66    Enable(lldb::StreamSP &log_stream_sp,
67           uint32_t log_options,
68           lldb_private::Stream *feedback_strm,  // Feedback stream for argument errors etc
69           const char **categories) override;    // The categories to enable within this logging stream, if empty, enable default set
70
71    void
72    ListCategories(lldb_private::Stream *strm) override;
73
74    static lldb_private::Log *
75    GetLog ();
76
77    static lldb_private::Log *
78    GetLogIfAll (uint32_t mask);
79
80    static lldb_private::Log *
81    GetLogIfAny (uint32_t mask);
82
83    static void
84    LogIf (uint32_t mask, const char *format, ...);
85};
86
87#endif // SymbolFileDWARF_LogChannelDWARF_h_
88