Commit 30fc7ff2 by Jamie Madill Committed by Commit Bot

Show file in internal errors.

Just showing the line and function isn't as useful. Bug: angleproject:3162 Change-Id: Ic8c2425a7a7e9992d2a569abd8ea0b7731fa69c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2407834 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
parent b328e044
......@@ -12,6 +12,7 @@
#include <array>
#include <cstdio>
#include <cstring>
#include <fstream>
#include <mutex>
#include <ostream>
......@@ -145,13 +146,14 @@ ScopedPerfEventHelper::~ScopedPerfEventHelper()
}
}
LogMessage::LogMessage(const char *function, int line, LogSeverity severity)
: mFunction(function), mLine(line), mSeverity(severity)
LogMessage::LogMessage(const char *file, const char *function, int line, LogSeverity severity)
: mFile(file), mFunction(function), mLine(line), mSeverity(severity)
{
// EVENT() does not require additional function(line) info.
if (mSeverity != LOG_EVENT)
{
mStream << mFunction << "(" << mLine << "): ";
const char *slash = std::max(strrchr(mFile, '/'), strrchr(mFile, '\\'));
mStream << (slash ? (slash + 1) : mFile) << ":" << mLine << " (" << mFunction << "): ";
}
}
......
......@@ -63,7 +63,7 @@ class LogMessage : angle::NonCopyable
{
public:
// Used for ANGLE_LOG(severity).
LogMessage(const char *function, int line, LogSeverity severity);
LogMessage(const char *file, const char *function, int line, LogSeverity severity);
~LogMessage();
std::ostream &stream() { return mStream; }
......@@ -71,6 +71,7 @@ class LogMessage : angle::NonCopyable
std::string getMessage() const;
private:
const char *mFile;
const char *mFunction;
const int mLine;
const LogSeverity mSeverity;
......@@ -188,15 +189,15 @@ std::ostream &FmtHex(std::ostream &os, T value)
// by ANGLE_LOG(). Since these are used all over our code, it's
// better to have compact code for these operations.
#define COMPACT_ANGLE_LOG_EX_EVENT(ClassName, ...) \
::gl::ClassName(__FUNCTION__, __LINE__, ::gl::LOG_EVENT, ##__VA_ARGS__)
::gl::ClassName(__FILE__, __FUNCTION__, __LINE__, ::gl::LOG_EVENT, ##__VA_ARGS__)
#define COMPACT_ANGLE_LOG_EX_INFO(ClassName, ...) \
::gl::ClassName(__FUNCTION__, __LINE__, ::gl::LOG_INFO, ##__VA_ARGS__)
::gl::ClassName(__FILE__, __FUNCTION__, __LINE__, ::gl::LOG_INFO, ##__VA_ARGS__)
#define COMPACT_ANGLE_LOG_EX_WARN(ClassName, ...) \
::gl::ClassName(__FUNCTION__, __LINE__, ::gl::LOG_WARN, ##__VA_ARGS__)
::gl::ClassName(__FILE__, __FUNCTION__, __LINE__, ::gl::LOG_WARN, ##__VA_ARGS__)
#define COMPACT_ANGLE_LOG_EX_ERR(ClassName, ...) \
::gl::ClassName(__FUNCTION__, __LINE__, ::gl::LOG_ERR, ##__VA_ARGS__)
::gl::ClassName(__FILE__, __FUNCTION__, __LINE__, ::gl::LOG_ERR, ##__VA_ARGS__)
#define COMPACT_ANGLE_LOG_EX_FATAL(ClassName, ...) \
::gl::ClassName(__FUNCTION__, __LINE__, ::gl::LOG_FATAL, ##__VA_ARGS__)
::gl::ClassName(__FILE__, __FUNCTION__, __LINE__, ::gl::LOG_FATAL, ##__VA_ARGS__)
#define COMPACT_ANGLE_LOG_EVENT COMPACT_ANGLE_LOG_EX_EVENT(LogMessage)
#define COMPACT_ANGLE_LOG_INFO COMPACT_ANGLE_LOG_EX_INFO(LogMessage)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment