Skip to contentSkip to conversation

Fix stack closures

PATCH New Samuel Thibault 1 participant 1 message Nov 23, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix stack closures

So as to make backtracing tools happy, correctly close x86 stacks for new threads as well as on callback in the x86_32 case since there is no unwind marker.

extras/mini-os/arch/x86/x86_32.S +3 -0
diff -r 2e05a6173be0 extras/mini-os/arch/x86/x86_32.S
@@ -125,6 +125,7 @@
         cmpl $ecrit,%eax
         jb   critical_region_fixup
 11:     push %esp
+        xorl %ebp,%ebp
         call do_hypervisor_callback
         add  $4,%esp
         movl HYPERVISOR_shared_info,%esi
@@ -280,6 +281,8 @@
 ENTRY(thread_starter)
     popl %eax
     popl %ebx
+    pushl $0
+    xorl %ebp,%ebp
     pushl %eax
     call *%ebx
     call exit_thread 
extras/mini-os/arch/x86/x86_64.S +2 -0
@@ -379,6 +378,8 @@
 ENTRY(thread_starter)
         popq %rdi
         popq %rbx
+        pushq $0
+        xorq %rbp,%rbp
         call *%rbx
         call exit_thread