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 31 class LogChannelDWARF : public lldb_private::LogChannel { 32 public: 33 LogChannelDWARF(); 34 35 ~LogChannelDWARF() override; 36 37 static void Initialize(); 38 39 static void Terminate(); 40 41 static lldb_private::ConstString GetPluginNameStatic(); 42 43 static const char *GetPluginDescriptionStatic(); 44 45 static lldb_private::LogChannel *CreateInstance(); 46 47 lldb_private::ConstString GetPluginName() override; 48 49 uint32_t GetPluginVersion() override; 50 51 void Disable(const char **categories, 52 lldb_private::Stream *feedback_strm) override; 53 54 void Delete(); 55 56 bool Enable(lldb::StreamSP &log_stream_sp, uint32_t log_options, 57 lldb_private::Stream 58 *feedback_strm, // Feedback stream for argument errors etc 59 const char **categories) override; // The categories to enable 60 // within this logging stream, 61 // if empty, enable default set 62 63 void ListCategories(lldb_private::Stream *strm) override; 64 65 static lldb_private::Log *GetLog(); 66 67 static lldb_private::Log *GetLogIfAll(uint32_t mask); 68 69 static lldb_private::Log *GetLogIfAny(uint32_t mask); 70 71 static void LogIf(uint32_t mask, const char *format, ...); 72 }; 73 74 #endif // SymbolFileDWARF_LogChannelDWARF_h_ 75