aboutsummaryrefslogtreecommitdiff
path: root/builtins/functions.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-09-12 23:41:32 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-09-12 23:41:32 -0400
commitda9cc93c466c65e0294b4b29bec6603b2d4552eb (patch)
treebfd266d559365366802eaf1a285d7983b426f9c8 /builtins/functions.c
parent46a2aa2ffc71820767f0cdaead84c26dc240c893 (diff)
Make functions print with `func name(...)->... [file:line]` info
Diffstat (limited to 'builtins/functions.c')
-rw-r--r--builtins/functions.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/builtins/functions.c b/builtins/functions.c
index a2b17807..edbea33b 100644
--- a/builtins/functions.c
+++ b/builtins/functions.c
@@ -43,6 +43,18 @@ public void tomo_init(void)
errx(1, "Couldn't set printf specifier");
}
+static Table_t function_names = {};
+
+public void register_function(void *fn, Text_t name)
+{
+ Table$set(&function_names, &fn, &name, Table$info(Function$info("???"), &Text$info));
+}
+
+public Text_t *get_function_name(void *fn)
+{
+ return Table$get(function_names, &fn, Table$info(Function$info("???"), &Text$info));
+}
+
void print_stack_trace(FILE *out, int start, int stop)
{
// Print stack trace: