diff options
| author | LLLL Colonq <llll@colonq> | 2026-07-21 21:19:25 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-07-21 21:19:25 -0400 |
| commit | f10714830fd8a65129d261df3436b885cee871cd (patch) | |
| tree | acbbfcaf3f83d73c6343be1d03d9fcd69c3fb3a5 /pit/src/runtime/dump.c | |
| parent | a5e153d8558a43fbdc78f5b9fdaff426feea4654 (diff) | |
pit: Improve backtraces
Diffstat (limited to 'pit/src/runtime/dump.c')
| -rw-r--r-- | pit/src/runtime/dump.c | 19 |
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; |
