diff options
author | Bad Diode <bd@badd10de.dev> | 2024-06-15 01:08:39 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2024-06-15 01:08:39 +0200 |
commit | 92129f31bf0e5c423f2a7e406ae3600d7128a443 (patch) | |
tree | cf98e4436c4ed3e58c5a5b7237cfdb97f894470f /src | |
parent | 58069c9561cc77f74bc4047ab5f91bdee8bb385c (diff) | |
download | bdl-92129f31bf0e5c423f2a7e406ae3600d7128a443.tar.gz bdl-92129f31bf0e5c423f2a7e406ae3600d7128a443.zip |
Add a new log_func to check the memory of an Array/Str
Diffstat (limited to 'src')
-rw-r--r-- | src/badlib.h | 16 | ||||
-rw-r--r-- | src/main.c | 10 |
2 files changed, 22 insertions, 4 deletions
diff --git a/src/badlib.h b/src/badlib.h index 6207ecf..7e1a715 100644 --- a/src/badlib.h +++ b/src/badlib.h | |||
@@ -1292,6 +1292,21 @@ log_func_array(Logger *l, void *in) { | |||
1292 | log_str(l, cstr(" }")); | 1292 | log_str(l, cstr(" }")); |
1293 | } | 1293 | } |
1294 | 1294 | ||
1295 | void | ||
1296 | log_func_memory(Logger *l, void *in) { | ||
1297 | assert(l); | ||
1298 | Array *val = in; | ||
1299 | for (sz i = 0; i < MIN(64, val->size); i++) { | ||
1300 | Arena scratch = l->storage; | ||
1301 | log_str(l, str_from_hex(val->mem[i], 2, &scratch)); | ||
1302 | if ((i + 1) % 16 == 0) { | ||
1303 | log_str(l, cstr("\n")); | ||
1304 | } else { | ||
1305 | log_str(l, cstr(" ")); | ||
1306 | } | ||
1307 | } | ||
1308 | } | ||
1309 | |||
1295 | #define LOG_BUF_SIZE KB(1) | 1310 | #define LOG_BUF_SIZE KB(1) |
1296 | #define LOG_MEM_SIZE KB(2) | 1311 | #define LOG_MEM_SIZE KB(2) |
1297 | 1312 | ||
@@ -1340,6 +1355,7 @@ log_init_default(void) { | |||
1340 | {cstr("Arena"), log_func_arena}, | 1355 | {cstr("Arena"), log_func_arena}, |
1341 | {cstr("Buf"), log_func_buf}, | 1356 | {cstr("Buf"), log_func_buf}, |
1342 | {cstr("Array"), log_func_array}, | 1357 | {cstr("Array"), log_func_array}, |
1358 | {cstr("Mem"), log_func_memory}, | ||
1343 | }; | 1359 | }; |
1344 | for (sz i = 0; i < LEN(log_funcs); i++) { | 1360 | for (sz i = 0; i < LEN(log_funcs); i++) { |
1345 | log_func_register(&logger_inf, log_funcs[i]); | 1361 | log_func_register(&logger_inf, log_funcs[i]); |
@@ -37,11 +37,13 @@ process_file(Str path) { | |||
37 | println("%x{4} %s", i + 1, line); | 37 | println("%x{4} %s", i + 1, line); |
38 | } | 38 | } |
39 | 39 | ||
40 | println("<<< %x{4} %b{4} %f{2} %s %{Arena} >>>", 123, 3, 1.345, | 40 | // println("<<< %x{4} %b{4} %f{2} %s %{Arena} >>>", 123, 3, 1.345, |
41 | cstr("BOOM!"), &logger_inf.storage); | 41 | // cstr("BOOM!"), &logger_inf.storage); |
42 | printerrln("%s:%d:%d: %s", path, 1, 1, | 42 | // printerrln("%s:%d:%d: %s", path, 1, 1, |
43 | cstr("error: testing string logger")); | 43 | // cstr("error: testing string logger")); |
44 | 44 | ||
45 | println("arena_memory:\n%{Mem}", | ||
46 | &(Array){logger_inf.storage.beg, logger_inf.storage.size}); | ||
45 | // TODO: run lexer. | 47 | // TODO: run lexer. |
46 | } | 48 | } |
47 | 49 | ||