about summary refs log tree commit diff
path: root/src/rt/rust_task.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/rt/rust_task.cpp')
-rw-r--r--src/rt/rust_task.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp
index 6d61065d551..2902e32a439 100644
--- a/src/rt/rust_task.cpp
+++ b/src/rt/rust_task.cpp
@@ -732,6 +732,11 @@ rust_task::config_notify(chan_handle chan) {
     notify_chan = chan;
 }
 
+// This is the function that switches stacks by calling another function with
+// a single void* argument while changing the stack pointer. It has a funny
+// name because gdb doesn't normally like to backtrace through split stacks
+// (thinks it indicates a bug), but has a special case to allow functions
+// named __morestack to move the stack pointer around.
 extern "C" void __morestack(void *args, void *fn_ptr, uintptr_t stack_ptr);
 
 static uintptr_t