aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2024-06-15 01:08:39 +0200
committerBad Diode <bd@badd10de.dev>2024-06-15 01:08:39 +0200
commit92129f31bf0e5c423f2a7e406ae3600d7128a443 (patch)
treecf98e4436c4ed3e58c5a5b7237cfdb97f894470f /src
parent58069c9561cc77f74bc4047ab5f91bdee8bb385c (diff)
downloadbdl-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.h16
-rw-r--r--src/main.c10
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
1295void
1296log_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]);
diff --git a/src/main.c b/src/main.c
index 0567116..9485c95 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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