From 31e1be78fafa9dac4919ace2d4e2d193b7a4b0d4 Mon Sep 17 00:00:00 2001 From: Cedric Roux <cedric.roux@eurecom.fr> Date: Wed, 22 Jun 2016 16:11:43 +0200 Subject: [PATCH] add possibility to logger 'textlog' to print full content of buffers --- common/utils/T/tracer/logger/logger.h | 2 ++ common/utils/T/tracer/logger/textlog.c | 21 ++++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/common/utils/T/tracer/logger/logger.h b/common/utils/T/tracer/logger/logger.h index 926eaff58c..a777581db9 100644 --- a/common/utils/T/tracer/logger/logger.h +++ b/common/utils/T/tracer/logger/logger.h @@ -20,6 +20,8 @@ logger *new_iqlog(void *event_handler, void *database, void framelog_set_skip(logger *_this, int skip_delay); void framelog_set_update_only_at_sf9(logger *_this, int update_only_at_sf9); +void textlog_dump_buffer(logger *_this, int dump_buffer); + #include "view/view.h" void logger_add_view(logger *l, view *v); diff --git a/common/utils/T/tracer/logger/textlog.c b/common/utils/T/tracer/logger/textlog.c index e80af7813e..9eb6fd02d8 100644 --- a/common/utils/T/tracer/logger/textlog.c +++ b/common/utils/T/tracer/logger/textlog.c @@ -32,12 +32,13 @@ struct textlog { int fsize; /* local output buffer */ OBUF o; + int dump_buffer; }; static void _event(void *p, event e) { struct textlog *l = p; - int i; + int i, j; #ifdef T_SEND_TIME struct tm *t; char tt[64]; @@ -65,6 +66,14 @@ static void _event(void *p, event e) case BUFFER: PUTS(&l->o, "{buffer size:"); PUTI(&l->o, e.e[l->f[i].event_arg].bsize); + if (l->dump_buffer) { + PUTS(&l->o, " ["); + for (j = 0; j < e.e[l->f[i].event_arg].bsize; j++) { + PUTX2(&l->o, ((unsigned char *)e.e[l->f[i].event_arg].b)[j]); + PUTC(&l->o, ' '); + } + PUTS(&l->o, "]"); + } PUTS(&l->o, "}"); break; } @@ -196,3 +205,13 @@ error: printf("%s:%d: bad format '%s'\n", __FILE__, __LINE__, format); abort(); } + +/****************************************************************************/ +/* public functions */ +/****************************************************************************/ + +void textlog_dump_buffer(logger *_this, int dump_buffer) +{ + struct textlog *l = _this; + l->dump_buffer = dump_buffer; +} -- GitLab