mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
pvattest: Improve logging
Change the name of `hexdump´ to `pvattest_log_bytes´. Additionally, allow that function to dump the bytes as a single hexadecimal number. Change the name of `printf_hexdump´ to `pvattest_hexdump´. Signed-off-by: Steffen Eiden <seiden@linux.ibm.com> Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
148460c235
commit
972d4fe0a5
@@ -455,8 +455,8 @@ static void print_entry(const char *name, GBytes *data, const gboolean print_dat
|
||||
fprintf(stream, _("%s (%#lx bytes)"), name, g_bytes_get_size(data));
|
||||
if (print_data) {
|
||||
fprintf(stream, ":\n");
|
||||
printf_hexdump(g_bytes_get_data(data, NULL), g_bytes_get_size(data), 16, " ",
|
||||
stream);
|
||||
pvattest_hexdump(g_bytes_get_data(data, NULL), g_bytes_get_size(data), 16, " ",
|
||||
stream);
|
||||
}
|
||||
fprintf(stream, "\n");
|
||||
}
|
||||
|
||||
@@ -131,26 +131,35 @@ void pvattest_log_plain_logger(const char *log_domain G_GNUC_UNUSED, GLogLevelFl
|
||||
_log_logger(level, message, log_level, FALSE, "");
|
||||
}
|
||||
|
||||
void hexdump(const void *data, size_t size, size_t len, const char *prefix, GLogLevelFlags log_lvl)
|
||||
void pvattest_log_bytes(const void *data, size_t size, size_t width, const char *prefix,
|
||||
gboolean beautify, GLogLevelFlags log_lvl)
|
||||
{
|
||||
const uint8_t *data_b = data;
|
||||
|
||||
pv_wrapped_g_assert(data);
|
||||
|
||||
g_log(PVATTEST_HEXDUMP_LOG_DOMAIN, log_lvl, "%s0x0000 ", prefix);
|
||||
if (beautify)
|
||||
g_log(PVATTEST_BYTES_LOG_DOMAIN, log_lvl, "%s0x0000 ", prefix);
|
||||
else
|
||||
g_log(PVATTEST_BYTES_LOG_DOMAIN, log_lvl, "%s", prefix);
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
g_log(PVATTEST_HEXDUMP_LOG_DOMAIN, log_lvl, "%02x", data_b[i]);
|
||||
if (i % 2 == 1)
|
||||
g_log(PVATTEST_HEXDUMP_LOG_DOMAIN, log_lvl, " ");
|
||||
g_log(PVATTEST_BYTES_LOG_DOMAIN, log_lvl, "%02x", data_b[i]);
|
||||
if (i % 2 == 1 && beautify)
|
||||
g_log(PVATTEST_BYTES_LOG_DOMAIN, log_lvl, " ");
|
||||
if (i == size - 1)
|
||||
break;
|
||||
if (i % len == len - 1)
|
||||
g_log(PVATTEST_HEXDUMP_LOG_DOMAIN, log_lvl, "\n%s0x%04lx ", prefix, i + 1);
|
||||
if (i % width == width - 1) {
|
||||
if (beautify)
|
||||
g_log(PVATTEST_BYTES_LOG_DOMAIN, log_lvl, "\n%s0x%04lx ", prefix,
|
||||
i + 1);
|
||||
else
|
||||
g_log(PVATTEST_BYTES_LOG_DOMAIN, log_lvl, "\n%s", prefix);
|
||||
}
|
||||
}
|
||||
g_log(PVATTEST_HEXDUMP_LOG_DOMAIN, log_lvl, "\n");
|
||||
g_log(PVATTEST_BYTES_LOG_DOMAIN, log_lvl, "\n");
|
||||
}
|
||||
|
||||
void printf_hexdump(const void *data, size_t size, size_t len, const char *prefix, FILE *stream)
|
||||
void pvattest_hexdump(const void *data, size_t size, size_t width, const char *prefix, FILE *stream)
|
||||
{
|
||||
const uint8_t *data_b = data;
|
||||
|
||||
@@ -164,7 +173,7 @@ void printf_hexdump(const void *data, size_t size, size_t len, const char *prefi
|
||||
fprintf(stream, " ");
|
||||
if (i == size - 1)
|
||||
break;
|
||||
if (i % len == len - 1)
|
||||
if (i % width == width - 1)
|
||||
fprintf(stream, "\n%s0x%04lx ", prefix, i + 1);
|
||||
}
|
||||
fprintf(stream, "\n");
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#define PVATTEST_LOG_LVL_DEFAULT PVATTEST_LOG_LVL_WARNING
|
||||
#define PVATTEST_LOG_LVL_MAX PVATTEST_LOG_LVL_DEBUG
|
||||
|
||||
#define PVATTEST_HEXDUMP_LOG_DOMAIN "pvattest_hdump"
|
||||
#define PVATTEST_BYTES_LOG_DOMAIN "pvattest_bytes"
|
||||
|
||||
void pvattest_log_increase_log_lvl(int *log_lvl);
|
||||
void pvattest_log_error(const char *format, ...);
|
||||
@@ -45,22 +45,22 @@ void pvattest_log_default_logger(const char *log_domain, GLogLevelFlags level, c
|
||||
*/
|
||||
void pvattest_log_plain_logger(const char *log_domain, GLogLevelFlags level, const char *message,
|
||||
void *user_data);
|
||||
#define dhexdump(v, s) \
|
||||
{ \
|
||||
pvattest_log_debug("%s (%li byte):", #v, s); \
|
||||
hexdump(v, s, 16L, " ", PVATTEST_LOG_LVL_DEBUG); \
|
||||
g_log(PVATTEST_HEXDUMP_LOG_DOMAIN, PVATTEST_LOG_LVL_DEBUG, "\n"); \
|
||||
}
|
||||
#define gbhexdump(v) \
|
||||
#define dhexdump(v, s) \
|
||||
{ \
|
||||
pvattest_log_debug("%s:(%li byte):", #v, g_bytes_get_size(v)); \
|
||||
hexdump(g_bytes_get_data(v, NULL), g_bytes_get_size(v), 16L, " ", \
|
||||
PVATTEST_LOG_LVL_DEBUG); \
|
||||
g_log(PVATTEST_HEXDUMP_LOG_DOMAIN, PVATTEST_LOG_LVL_DEBUG, "\n"); \
|
||||
pvattest_log_debug("%s (%li byte):", #v, s); \
|
||||
pvattest_log_bytes(v, s, 16L, " ", TRUE, PVATTEST_LOG_LVL_DEBUG); \
|
||||
g_log(PVATTEST_BYTES_LOG_DOMAIN, PVATTEST_LOG_LVL_DEBUG, "\n"); \
|
||||
}
|
||||
void hexdump(const void *data, size_t size, size_t len, const char *prefix, GLogLevelFlags log_lvl)
|
||||
PV_NONNULL(1);
|
||||
void printf_hexdump(const void *data, size_t size, size_t len, const char *prefix, FILE *stream)
|
||||
#define gbhexdump(v) \
|
||||
{ \
|
||||
pvattest_log_debug("%s:(%li byte):", #v, g_bytes_get_size(v)); \
|
||||
pvattest_log_bytes(g_bytes_get_data(v, NULL), g_bytes_get_size(v), 16L, " ", \
|
||||
TRUE, PVATTEST_LOG_LVL_DEBUG); \
|
||||
g_log(PVATTEST_BYTES_LOG_DOMAIN, PVATTEST_LOG_LVL_DEBUG, "\n"); \
|
||||
}
|
||||
void pvattest_log_bytes(const void *data, size_t size, size_t width, const char *prefix,
|
||||
gboolean beautify, GLogLevelFlags log_lvl) PV_NONNULL(1);
|
||||
void pvattest_hexdump(const void *data, size_t size, size_t width, const char *prefix, FILE *stream)
|
||||
PV_NONNULL(1, 5);
|
||||
void pvattest_log_GError(const char *info, GError *error) PV_NONNULL(1);
|
||||
|
||||
|
||||
@@ -355,7 +355,7 @@ int main(int argc, char *argv[])
|
||||
* message)to filter messages based on the log level specified by the
|
||||
* user.
|
||||
*/
|
||||
g_log_set_handler(PVATTEST_HEXDUMP_LOG_DOMAIN,
|
||||
g_log_set_handler(PVATTEST_BYTES_LOG_DOMAIN,
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
|
||||
&pvattest_log_plain_logger, &appl_log_lvl);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user