ScopedPerfEventHelper::~ScopedPerfEventHelper() { if (DebugAnnotationsActive()) { g_debugAnnotator->endEvent(); } }
void Trace(LogSeverity severity, const char *message) { if (!ShouldCreateLogMessage(severity)) { return; } std::string str(message); if (DebugAnnotationsActive()) { std::wstring formattedWideMessage(str.begin(), str.end()); switch (severity) { case LOG_EVENT: g_debugAnnotator->beginEvent(formattedWideMessage.c_str()); break; default: g_debugAnnotator->setMarker(formattedWideMessage.c_str()); break; } } if (severity == LOG_ERR) { // Note: we use fprintf because <iostream> includes static initializers. fprintf(stderr, "%s: %s\n", LogSeverityName(severity), str.c_str()); } #if defined(ANGLE_PLATFORM_WINDOWS) && \ (defined(ANGLE_ENABLE_DEBUG_TRACE_TO_DEBUGGER) || !defined(NDEBUG)) #if !defined(ANGLE_ENABLE_DEBUG_TRACE_TO_DEBUGGER) if (severity == LOG_ERR) #endif // !defined(ANGLE_ENABLE_DEBUG_TRACE_TO_DEBUGGER) { OutputDebugStringA(str.c_str()); } #endif #if defined(ANGLE_ENABLE_DEBUG_TRACE) #if defined(NDEBUG) if (severity == LOG_EVENT || severity == LOG_WARN) { return; } #endif // defined(NDEBUG) static std::ofstream file(TRACE_OUTPUT_FILE, std::ofstream::app); if (file) { file << LogSeverityName(severity) << ": " << str << std::endl; file.flush(); } #endif // defined(ANGLE_ENABLE_DEBUG_TRACE) }
ScopedPerfEventHelper::ScopedPerfEventHelper(const char* format, ...) { #if !defined(ANGLE_ENABLE_DEBUG_TRACE) if (!DebugAnnotationsActive()) { return; } #endif // !ANGLE_ENABLE_DEBUG_TRACE va_list vararg; va_start(vararg, format); output(true, MESSAGE_EVENT, DebugTraceOutputTypeBeginEvent, format, vararg); va_end(vararg); }
ScopedPerfEventHelper::ScopedPerfEventHelper(const char *format, ...) { #if !defined(ANGLE_ENABLE_DEBUG_TRACE) if (!DebugAnnotationsActive()) { return; } #endif // !ANGLE_ENABLE_DEBUG_TRACE va_list vararg; va_start(vararg, format); std::vector<char> buffer(512); size_t len = FormatStringIntoVector(format, vararg, buffer); ANGLE_LOG(EVENT) << std::string(&buffer[0], len); va_end(vararg); }