diff options
author | Suren A. Chilingaryan <csa@suren.me> | 2015-04-30 20:18:57 +0200 |
---|---|---|
committer | Suren A. Chilingaryan <csa@suren.me> | 2015-04-30 20:18:57 +0200 |
commit | ccc34fa5ecea32517b72ebc01aca8f02295105fe (patch) | |
tree | c987f03fbdc76d0f264ed7d716ca9b046738fdb3 | |
parent | 8da61292f595c5e700a4fef981b0e0d07910b4b2 (diff) | |
download | pcitool-ccc34fa5ecea32517b72ebc01aca8f02295105fe.tar.gz pcitool-ccc34fa5ecea32517b72ebc01aca8f02295105fe.tar.bz2 pcitool-ccc34fa5ecea32517b72ebc01aca8f02295105fe.tar.xz pcitool-ccc34fa5ecea32517b72ebc01aca8f02295105fe.zip |
Add code to debug missing events while recording
-rw-r--r-- | pcilib/debug.h | 8 | ||||
-rw-r--r-- | pcitool/cli.c | 22 |
2 files changed, 26 insertions, 4 deletions
diff --git a/pcilib/debug.h b/pcilib/debug.h index f9134be..b7c547f 100644 --- a/pcilib/debug.h +++ b/pcilib/debug.h @@ -5,6 +5,7 @@ #ifdef PCILIB_DEBUG # define PCILIB_DEBUG_DMA +# define PCILIB_DEBUG_MISSING_EVENTS #endif /* PCILIB_DEBUG */ @@ -14,6 +15,13 @@ # define PCILIB_DEBUG_DMA_CALL(function, ...) #endif /* PCILIB_DEBUG_DMA */ +#ifdef PCILIB_DEBUG_MISSING_EVENTS +# define PCILIB_DEBUG_MISSING_EVENTS_CALL(function, ...) pcilib_debug_message (#function, __FILE__, __LINE__, __VA_ARGS__) +#else /* PCILIB_DEBUG_MISSING_EVENTS */ +# define PCILIB_DEBUG_MISSING_EVENTS_CALL(function, ...) +#endif /* PCILIB_DEBUG_MISSING_EVENTS */ + + #define pcilib_debug(function, ...) \ PCILIB_DEBUG_##function##_CALL(PCILIB_DEBUG_##function, __VA_ARGS__) diff --git a/pcitool/cli.c b/pcitool/cli.c index b04107b..a8f1e35 100644 --- a/pcitool/cli.c +++ b/pcitool/cli.c @@ -35,6 +35,7 @@ #include "tools.h" #include "kmem.h" #include "error.h" +#include "debug.h" #include "model.h" /* defines */ @@ -1294,8 +1295,14 @@ int GrabCallback(pcilib_event_id_t event_id, pcilib_event_info_t *info, void *us ctx->event_pending = 0; ctx->event_count++; - if (ctx->last_num) - ctx->missing_count += (info->seqnum - ctx->last_num) - 1; + if (ctx->last_num) { + size_t missing_count = (info->seqnum - ctx->last_num) - 1; + ctx->missing_count += missing_count; +#ifdef PCILIB_DEBUG_MISSING_EVENTS + if (missing_count) + pcilib_debug(MISSING_EVENTS, "%zu missing events between %zu and %zu", missing_count, ctx->last_num, info->seqnum); +#endif /* PCILIB_DEBUG_MISSING_EVENTS */ + } ctx->last_num = info->seqnum; @@ -1371,8 +1378,15 @@ int raw_data(pcilib_event_id_t event_id, pcilib_event_info_t *info, pcilib_event } ctx->event_count++; - if (ctx->last_num) - ctx->missing_count += (info->seqnum - ctx->last_num) - 1; + if (ctx->last_num) { + size_t missing_count = (info->seqnum - ctx->last_num) - 1; + ctx->missing_count += missing_count; +#ifdef PCILIB_DEBUG_MISSING_EVENTS + if (missing_count) + pcilib_debug(MISSING_EVENTS, "%zu missing events between %zu and %zu", missing_count, ctx->last_num, info->seqnum); +#endif /* PCILIB_DEBUG_MISSING_EVENTS */ + + } ctx->last_num = info->seqnum; } |