summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-04-30 02:03:32 +0300
committerAndrei Karas <akaras@inbox.ru>2016-04-30 02:03:32 +0300
commit244991dee7a2e274cb361f5040dd39b0f2997290 (patch)
tree1561cedb98b1f2df73fb49cc26f48eb14d01e520 /src/utils
parent22795c4301cd6b62a8270b45a72a850ed888daf8 (diff)
downloadmv-244991dee7a2e274cb361f5040dd39b0f2997290.tar.gz
mv-244991dee7a2e274cb361f5040dd39b0f2997290.tar.bz2
mv-244991dee7a2e274cb361f5040dd39b0f2997290.tar.xz
mv-244991dee7a2e274cb361f5040dd39b0f2997290.zip
Extend assert reporting functions with condition text and call stack.
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/checkutils.cpp20
-rw-r--r--src/utils/checkutils.h28
2 files changed, 30 insertions, 18 deletions
diff --git a/src/utils/checkutils.cpp b/src/utils/checkutils.cpp
index 2fc471d7e..6cc3c751e 100644
--- a/src/utils/checkutils.cpp
+++ b/src/utils/checkutils.cpp
@@ -30,19 +30,25 @@
#include "debug.h"
-bool reportFalseReal(const bool val, const char *const file,
- const unsigned line)
+bool reportFalseReal(const bool val,
+ const char *const text,
+ const char *const file,
+ const unsigned line,
+ const char *const func)
{
if (!val)
- logger->log("Debug: false value at %s:%u", file, line);
+ reportStack(file, line, func, "Detected false value", text);
return val;
}
-bool reportTrueReal(const bool val, const char *const file,
- const unsigned line)
+bool reportTrueReal(const bool val,
+ const char *const text,
+ const char *const file,
+ const unsigned line,
+ const char *const func)
{
if (val)
- logger->log("Debug: true value at %s:%u", file, line);
+ reportStack(file, line, func, "Detected true value", text);
return val;
}
@@ -61,7 +67,7 @@ void reportStack(const char *const file,
logger->log("--- %s --------------------------------------------",
name);
- logger->log("%s:%u: '%s' in function `%s'",
+ logger->assert("%s:%u: '%s' in function `%s'",
file,
line,
text,
diff --git a/src/utils/checkutils.h b/src/utils/checkutils.h
index 21f439743..539614a7a 100644
--- a/src/utils/checkutils.h
+++ b/src/utils/checkutils.h
@@ -23,17 +23,23 @@
#ifdef ENABLE_ASSERTS
-#define reportFalse(val) reportFalse1(val, __FILE__, __LINE__)
-#define reportFalse1(val, file, line) reportFalseReal(val, file, line)
-
-#define reportTrue(val) reportTrue1(val, __FILE__, __LINE__)
-#define reportTrue1(val, file, line) reportTrueReal(val, file, line)
-
-bool reportFalseReal(const bool val, const char *const file,
- const unsigned line);
-
-bool reportTrueReal(const bool val, const char *const file,
- const unsigned line);
+#define reportFalse(val) \
+ reportFalseReal(val, #val, __FILE__, __LINE__, __func__)
+
+#define reportTrue(val) \
+ reportTrueReal(val, #val, __FILE__, __LINE__, __func__)
+
+bool reportFalseReal(const bool val,
+ const char *const text,
+ const char *const file,
+ const unsigned line,
+ const char *const func);
+
+bool reportTrueReal(const bool val,
+ const char *const text,
+ const char *const file,
+ const unsigned line,
+ const char *const func);
void reportStack(const char *const file,
const unsigned int line,