summaryrefslogtreecommitdiff
path: root/libusb
diff options
context:
space:
mode:
authorPete Batard <pbatard@gmail.com>2010-04-06 21:12:13 +0100
committerPete Batard <pbatard@gmail.com>2010-04-06 21:12:13 +0100
commita7a96927a30094f308ad00bf2af4532e765c05e0 (patch)
tree6fd594ae992c22b8503d4329771b5daeaa982909 /libusb
parentadc09459820a35ecaf407adfce4e71835d8e469a (diff)
downloadlibusb-a7a96927a30094f308ad00bf2af4532e765c05e0.tar.gz
added toggable debug logging (core)
Diffstat (limited to 'libusb')
-rw-r--r--libusb/core.c14
-rw-r--r--libusb/libusbi.h2
2 files changed, 11 insertions, 5 deletions
diff --git a/libusb/core.c b/libusb/core.c
index af3e2fe..64b32cc 100644
--- a/libusb/core.c
+++ b/libusb/core.c
@@ -1461,6 +1461,9 @@ API_EXPORTED int libusb_attach_kernel_driver(libusb_device_handle *dev,
API_EXPORTED void libusb_set_debug(libusb_context *ctx, int level)
{
USBI_GET_CONTEXT(ctx);
+ // ctx can be NULL if called before libusb_init
+ if (ctx == NULL)
+ return;
if (!ctx->debug_fixed)
ctx->debug = level;
}
@@ -1499,6 +1502,11 @@ API_EXPORTED int libusb_init(libusb_context **context)
ctx->debug_fixed = 1;
}
+ // default context should be initialized before any call to usbi_dbg
+ if (!usbi_default_context) {
+ usbi_default_context = ctx;
+ }
+
usbi_dbg("");
usbi_mutex_init(&ctx->usb_devs_lock, NULL);
@@ -1519,10 +1527,6 @@ API_EXPORTED int libusb_init(libusb_context **context)
goto err;
}
- if (!usbi_default_context) {
- usbi_dbg("created default context");
- usbi_default_context = ctx;
- }
usbi_mutex_static_unlock(&default_context_lock);
if (context)
@@ -1576,6 +1580,8 @@ void usbi_log_v(struct libusb_context *ctx, enum usbi_log_level level,
#ifndef ENABLE_DEBUG_LOGGING
USBI_GET_CONTEXT(ctx);
+ if (ctx == NULL)
+ return;
if (!ctx->debug)
return;
if (level == LOG_LEVEL_WARNING && ctx->debug < 2)
diff --git a/libusb/libusbi.h b/libusb/libusbi.h
index 20077b6..8a26907 100644
--- a/libusb/libusbi.h
+++ b/libusb/libusbi.h
@@ -123,7 +123,7 @@ void usbi_log(struct libusb_context *ctx, enum usbi_log_level level,
#define _usbi_log(ctx, level, ...)
#endif
-#ifdef ENABLE_DEBUG_LOGGING
+#if defined(ENABLE_DEBUG_LOGGING) || defined(INCLUDE_DEBUG_LOGGING)
#define usbi_dbg(...) _usbi_log(NULL, LOG_LEVEL_DEBUG, __VA_ARGS__)
#else
#define usbi_dbg(...)