summaryrefslogtreecommitdiffstats
path: root/sbin/hastd/pjdlog.c
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2010-08-05 18:26:38 +0000
committerpjd <pjd@FreeBSD.org>2010-08-05 18:26:38 +0000
commitca14b5deab70f381014e291a3b7b803c4db5c81f (patch)
treebb7796651ea6ec61e2de4c6f3974d3287c90b72e /sbin/hastd/pjdlog.c
parent014b45ac24f7d94f317efa0ad8a07e52530bf04e (diff)
downloadFreeBSD-src-ca14b5deab70f381014e291a3b7b803c4db5c81f.zip
FreeBSD-src-ca14b5deab70f381014e291a3b7b803c4db5c81f.tar.gz
Problem with assertion is that it logs on stderr. Add two macros:
PJDLOG_ASSERT() and PJDLOG_VERIFY() that will check the given condition and log the problem where appropriate. The difference between those two is that PJDLOG_VERIFY() always work and PJDLOG_ASSERT() can be turned off by defining NDEBUG. MFC after: 1 month
Diffstat (limited to 'sbin/hastd/pjdlog.c')
-rw-r--r--sbin/hastd/pjdlog.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/sbin/hastd/pjdlog.c b/sbin/hastd/pjdlog.c
index 34921e2..6891893 100644
--- a/sbin/hastd/pjdlog.c
+++ b/sbin/hastd/pjdlog.c
@@ -365,3 +365,23 @@ pjdlog_exitx(int exitcode, const char *fmt, ...)
/* NOTREACHED */
va_end(ap);
}
+
+/*
+ * Log assertion and exit.
+ */
+void
+pjdlog_verify(const char *func, const char *file, int line,
+ const char *failedexpr)
+{
+
+ if (func == NULL) {
+ pjdlog_critical("Assertion failed: (%s), file %s, line %d.",
+ failedexpr, file, line);
+ } else {
+ pjdlog_critical("Assertion failed: (%s), function %s, file %s, line %d.",
+ failedexpr, func, file, line);
+ }
+ abort();
+ /* NOTREACHED */
+}
+
OpenPOWER on IntegriCloud