15#define _DC_DEBUG_MAX_CAPACITY 4096
33 size_t writable = available + 1;
40 if (mem_stream == NULL) {
45 long used_long = ftell(mem_stream);
52 size_t used = (size_t)used_long;
58 if (used > available) {
59 size_t content_size = available - trailing_len;
61 for (
size_t i = 0; i < trailing_len; i++) {
92#define DC_DEBUG(DEBUG_FN, DEBUG_PTR) \
94 FILE* stream = _dc_debug_dump_start(); \
96 if (stream == NULL) { \
97 result = _dc_debug_trailing_space; \
99 DEBUG_FN(DEBUG_PTR, dc_debug_fmt_new(), stream); \
100 result = _dc_debug_dump_end(stream); \
#define _DC_DEBUG_MAX_CAPACITY
static DC_THREAD_LOCAL size_t _dc_debug_dump_head
static DC_THREAD_LOCAL char _dc_debug_dump_buf[_DC_DEBUG_MAX_CAPACITY+4]
static DC_INTERNAL char const * _dc_debug_dump_end(FILE *mem_stream)
static DC_INTERNAL FILE * _dc_debug_dump_start(void)
static const char * _dc_debug_trailing_space
A no-alloc, debug dump utility for use in asserts.
static DC_PUBLIC void dc_debug_dump_reset(void)
static DC_THREAD_LOCAL size_t _dc_debug_dump_start_pos