[niepce] Have ERR_OUT() print the file and line #
- From: Hubert Figuière <hub src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [niepce] Have ERR_OUT() print the file and line #
- Date: Tue, 25 Jun 2013 23:41:44 +0000 (UTC)
commit 1423efe2c82f6acb784f9427f3725b026ca0620f
Author: Hubert Figuière <hub figuiere net>
Date: Tue Jun 25 18:00:18 2013 -0400
Have ERR_OUT() print the file and line #
src/fwk/base/debug.cpp | 43 ++++++++++++++++++++++++++++++++-----------
src/fwk/base/debug.hpp | 7 ++++---
2 files changed, 36 insertions(+), 14 deletions(-)
---
diff --git a/src/fwk/base/debug.cpp b/src/fwk/base/debug.cpp
index 7be5abf..f6421b2 100644
--- a/src/fwk/base/debug.cpp
+++ b/src/fwk/base/debug.cpp
@@ -45,6 +45,8 @@ namespace fwk {
static void _vprint(const char *prefix, const char *fmt,
const char* func,
va_list marker);
+static void _v2print(const char *prefix, const char* filen, int linen,
+ const char *fmt, const char* func, va_list marker);
static void _print(const char *prefix, const char *fmt,
const char* func, ...);
@@ -79,19 +81,20 @@ namespace fwk {
}
- void err_print(const char *fmt, const char* func, ...)
- {
-#define ERROR_MSG "ERROR: "
- va_list marker;
-
- va_start(marker, func);
- // TODO make this atomic
- _vprint(ERROR_MSG, fmt, func, marker);
+void err_print(const char *fmt, const char* func, const char* filen,
+ int linen, ...)
+{
+#define ERROR_MSG "ERROR %s:%d: "
+ va_list marker;
+
+ va_start(marker, linen);
+ // TODO make this atomic
+ _v2print(ERROR_MSG, filen, linen, fmt, func, marker);
+
+ va_end(marker);
- va_end(marker);
-
#undef ERROR_MSG
- }
+}
static void _print(const char *prefix, const char *fmt,
@@ -123,6 +126,24 @@ namespace fwk {
fprintf(stderr, "\n");
}
+static void _v2print(const char* prefix, const char* filen, int linen,
+ const char* fmt, const char* func, va_list marker)
+{
+ char buf[128];
+ snprintf(buf, 128, "(0x%lx) ", (unsigned long)pthread_self());
+ fwrite(buf, 1, strlen(buf), stderr);
+
+ fprintf(stderr, prefix, filen, linen);
+
+ if(func) {
+ fwrite(func, 1, strlen(func), stderr);
+ fwrite(" - ", 1, 3, stderr);
+ }
+
+ vfprintf(stderr, fmt, marker);
+ fprintf(stderr, "\n");
+}
+
}
/*
Local Variables:
diff --git a/src/fwk/base/debug.hpp b/src/fwk/base/debug.hpp
index 247dd0a..cc9197f 100644
--- a/src/fwk/base/debug.hpp
+++ b/src/fwk/base/debug.hpp
@@ -48,7 +48,7 @@ namespace fwk {
#endif
#define ERR_OUT(x, ...) \
- fwk::err_print(x, __FUNCTION__, ## __VA_ARGS__)
+ fwk::err_print(x, __FUNCTION__, __FILE__, __LINE__, ## __VA_ARGS__)
/** print debug messages. printf format.
@@ -77,8 +77,9 @@ void dbg_assert(bool condvalue, const char* cond, const char* func,
* @param fmt the formt string, printf style
* @param func the func name
*/
- void err_print(const char *fmt, const char* func, ...)
- __attribute__ ((format (printf, 1, 3)));
+void err_print(const char *fmt, const char* func, const char* filen,
+ int linen, ...)
+ __attribute__ ((format (printf, 1, 5)));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]