summaryrefslogtreecommitdiff
path: root/pit/src/runtime/dump.c
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-07-21 21:19:25 -0400
committerLLLL Colonq <llll@colonq>2026-07-21 21:19:25 -0400
commitf10714830fd8a65129d261df3436b885cee871cd (patch)
treeacbbfcaf3f83d73c6343be1d03d9fcd69c3fb3a5 /pit/src/runtime/dump.c
parenta5e153d8558a43fbdc78f5b9fdaff426feea4654 (diff)
pit: Improve backtraces
Diffstat (limited to 'pit/src/runtime/dump.c')
-rw-r--r--pit/src/runtime/dump.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/pit/src/runtime/dump.c b/pit/src/runtime/dump.c
index 0bd605e..9627a36 100644
--- a/pit/src/runtime/dump.c
+++ b/pit/src/runtime/dump.c
@@ -122,9 +122,26 @@ pit_dump_condition pit_dump_with_callback(
if ((ret = write((u8 *) buf, i, data)) < 0) goto end;
break;
}
+ case PIT_VALUE_HEAVY_SORT_FUNC: {
+ if (h->in.func.nm == PIT_NIL) {
+ slen = pit_libc_string_snprintf(buf, (size_t) len, "<anonymous function: %ld>", r);
+ if ((ret = write((u8 *) buf, slen, data)) < 0) goto end;
+ } else {
+ pit_traversal_push_dump_string(rt, rt->traversal, ">");
+ pit_traversal_push_value(rt, rt->traversal, h->in.func.nm);
+ pit_traversal_push_dump_string(rt, rt->traversal, "<function: ");
+ }
+ break;
+ }
+ case PIT_VALUE_HEAVY_SORT_NATIVEFUNC: {
+ slen = pit_libc_string_snprintf(buf, (size_t) len, "<native function: %ld>", r);
+ if ((ret = write((u8 *) buf, slen, data)) < 0) goto end;
+ break;
+ }
default:
- slen = pit_libc_string_snprintf(buf, (size_t) len, "<ref %ld>", r);
+ slen = pit_libc_string_snprintf(buf, (size_t) len, "<ref: %ld>", r);
if ((ret = write((u8 *) buf, slen, data)) < 0) goto end;
+ break;
}
}
break;