31#if defined(INFIX_DEBUG_ENABLED) && INFIX_DEBUG_ENABLED
40#if defined(DBLTAP_ENABLE) && defined(DBLTAP_IMPLEMENTATION)
48 printf("# " __VA_ARGS__); \
71void infix_dump_hex(
const void * data,
size_t size,
const char * title) {
72 const uint8_t *
byte = (
const uint8_t *)data;
79 note(
"%s (size: %llu bytes)", title, (
unsigned long long)size);
81 for (
size_t i = 0; i < size; i += 16) {
83 remaining_len =
sizeof(line_buf);
86 written = snprintf(buf_ptr, remaining_len,
"0x%04llx: ", (
unsigned long long)i);
90 if (written < 0 || (
size_t)written >= remaining_len)
93 remaining_len -= written;
96 for (
size_t j = 0; j < 16; ++j) {
98 written = snprintf(buf_ptr, remaining_len,
"%02x ",
byte[i + j]);
100 written = snprintf(buf_ptr, remaining_len,
" ");
101 if (written < 0 || (
size_t)written >= remaining_len)
104 remaining_len -= written;
107 written = snprintf(buf_ptr, remaining_len,
" ");
108 if (written < 0 || (
size_t)written >= remaining_len)
111 remaining_len -= written;
115 written = snprintf(buf_ptr, remaining_len,
"| ");
116 if (written < 0 || (
size_t)written >= remaining_len)
119 remaining_len -= written;
122 for (
size_t j = 0; j < 16; ++j) {
125 if (
byte[i + j] >= 32 &&
byte[i + j] <= 126)
126 written = snprintf(buf_ptr, remaining_len,
"%c",
byte[i + j]);
128 written = snprintf(buf_ptr, remaining_len,
".");
129 if (written < 0 || (
size_t)written >= remaining_len)
132 remaining_len -= written;
139 note(
" %s", line_buf);
141 note(
"End of %s", title);
A simple, header-only TAP14-compatible testing framework for C.
#define note(...)
Definition double_tap.h:150
A header for conditionally compiled debugging utilities.
static void infix_dump_hex(c23_maybe_unused const void *data, c23_maybe_unused size_t size, c23_maybe_unused const char *title)
Definition utility.h:115