mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-27 15:28:53 -04:00

*** to conform to clang-format’s LLVM style. This kind of mass change has *** two obvious implications: Firstly, merging this particular commit into a downstream fork may be a huge effort. Alternatively, it may be worth merging all changes up to this commit, performing the same reformatting operation locally, and then discarding the merge for this particular commit. The commands used to accomplish this reformatting were as follows (with current working directory as the root of the repository): find . \( -iname "*.c" -or -iname "*.cpp" -or -iname "*.h" -or -iname "*.mm" \) -exec clang-format -i {} + find . -iname "*.py" -exec autopep8 --in-place --aggressive --aggressive {} + ; The version of clang-format used was 3.9.0, and autopep8 was 1.2.4. Secondly, “blame” style tools will generally point to this commit instead of a meaningful prior commit. There are alternatives available that will attempt to look through this change and find the appropriate prior commit. YMMV. llvm-svn: 280751
92 lines
4.0 KiB
C++
92 lines
4.0 KiB
C++
//===-- ProcessWindowsLog.h -------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef liblldb_ProcessWindowsLog_h_
|
|
#define liblldb_ProcessWindowsLog_h_
|
|
|
|
#include "lldb/Core/Log.h"
|
|
|
|
#define WINDOWS_LOG_VERBOSE (1u << 0)
|
|
#define WINDOWS_LOG_PROCESS (1u << 1) // Log process operations
|
|
#define WINDOWS_LOG_EXCEPTION (1u << 1) // Log exceptions
|
|
#define WINDOWS_LOG_THREAD (1u << 2) // Log thread operations
|
|
#define WINDOWS_LOG_MEMORY (1u << 3) // Log memory reads/writes calls
|
|
#define WINDOWS_LOG_BREAKPOINTS (1u << 4) // Log breakpoint operations
|
|
#define WINDOWS_LOG_STEP (1u << 5) // Log step operations
|
|
#define WINDOWS_LOG_REGISTERS (1u << 6) // Log register operations
|
|
#define WINDOWS_LOG_EVENT (1u << 7) // Low level debug events
|
|
#define WINDOWS_LOG_ALL (UINT32_MAX)
|
|
|
|
enum class LogMaskReq { All, Any };
|
|
|
|
class ProcessWindowsLog {
|
|
static const char *m_pluginname;
|
|
|
|
public:
|
|
// ---------------------------------------------------------------------
|
|
// Public Static Methods
|
|
// ---------------------------------------------------------------------
|
|
static void Initialize();
|
|
|
|
static void Terminate();
|
|
|
|
static void RegisterPluginName(const char *pluginName) {
|
|
m_pluginname = pluginName;
|
|
}
|
|
|
|
static void RegisterPluginName(lldb_private::ConstString pluginName) {
|
|
m_pluginname = pluginName.GetCString();
|
|
}
|
|
|
|
static bool TestLogFlags(uint32_t mask, LogMaskReq req);
|
|
|
|
static lldb_private::Log *GetLog();
|
|
|
|
static void DisableLog(const char **args,
|
|
lldb_private::Stream *feedback_strm);
|
|
|
|
static lldb_private::Log *EnableLog(lldb::StreamSP &log_stream_sp,
|
|
uint32_t log_options, const char **args,
|
|
lldb_private::Stream *feedback_strm);
|
|
|
|
static void ListLogCategories(lldb_private::Stream *strm);
|
|
};
|
|
|
|
#define WINLOGF_IF(Flags, Req, Method, ...) \
|
|
{ \
|
|
if (ProcessWindowsLog::TestLogFlags(Flags, Req)) { \
|
|
Log *log = ProcessWindowsLog::GetLog(); \
|
|
if (log) \
|
|
log->Method(__VA_ARGS__); \
|
|
} \
|
|
}
|
|
|
|
#define WINLOG_IFANY(Flags, ...) \
|
|
WINLOGF_IF(Flags, LogMaskReq::Any, Printf, __VA_ARGS__)
|
|
#define WINLOG_IFALL(Flags, ...) \
|
|
WINLOGF_IF(Flags, LogMaskReq::All, Printf, __VA_ARGS__)
|
|
#define WINLOGV_IFANY(Flags, ...) \
|
|
WINLOGF_IF(Flags, LogMaskReq::Any, Verbose, __VA_ARGS__)
|
|
#define WINLOGV_IFALL(Flags, ...) \
|
|
WINLOGF_IF(Flags, LogMaskReq::All, Verbose, __VA_ARGS__)
|
|
#define WINLOGD_IFANY(Flags, ...) \
|
|
WINLOGF_IF(Flags, LogMaskReq::Any, Debug, __VA_ARGS__)
|
|
#define WINLOGD_IFALL(Flags, ...) \
|
|
WINLOGF_IF(Flags, LogMaskReq::All, Debug, __VA_ARGS__)
|
|
#define WINERR_IFANY(Flags, ...) \
|
|
WINLOGF_IF(Flags, LogMaskReq::Any, Error, __VA_ARGS__)
|
|
#define WINERR_IFALL(Flags, ...) \
|
|
WINLOGF_IF(Flags, LogMaskReq::All, Error, __VA_ARGS__)
|
|
#define WINWARN_IFANY(Flags, ...) \
|
|
WINLOGF_IF(Flags, LogMaskReq::Any, Warning, __VA_ARGS__)
|
|
#define WINWARN_IFALL(Flags, ...) \
|
|
WINLOGF_IF(Flags, LogMaskReq::All, Warning, __VA_ARGS__)
|
|
|
|
#endif // liblldb_ProcessWindowsLog_h_
|