debuggers.hg
changeset 16470:f28d36628de8
[Mini-OS] 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.
Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
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.
Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
author | Keir Fraser <keir.fraser@citrix.com> |
---|---|
date | Fri Nov 23 16:22:36 2007 +0000 (2007-11-23) |
parents | 75cb82d277be |
children | 2215f4f6f0f2 |
files | extras/mini-os/arch/x86/x86_32.S extras/mini-os/arch/x86/x86_64.S |
line diff
1.1 --- a/extras/mini-os/arch/x86/x86_32.S Fri Nov 23 16:22:13 2007 +0000 1.2 +++ b/extras/mini-os/arch/x86/x86_32.S Fri Nov 23 16:22:36 2007 +0000 1.3 @@ -126,6 +126,7 @@ ENTRY(hypervisor_callback) 1.4 cmpl $ecrit,%eax 1.5 jb critical_region_fixup 1.6 11: push %esp 1.7 + xorl %ebp,%ebp 1.8 call do_hypervisor_callback 1.9 add $4,%esp 1.10 movl HYPERVISOR_shared_info,%esi 1.11 @@ -281,6 +282,8 @@ ENTRY(spurious_interrupt_bug) 1.12 ENTRY(thread_starter) 1.13 popl %eax 1.14 popl %ebx 1.15 + pushl $0 1.16 + xorl %ebp,%ebp 1.17 pushl %eax 1.18 call *%ebx 1.19 call exit_thread
2.1 --- a/extras/mini-os/arch/x86/x86_64.S Fri Nov 23 16:22:13 2007 +0000 2.2 +++ b/extras/mini-os/arch/x86/x86_64.S Fri Nov 23 16:22:36 2007 +0000 2.3 @@ -380,6 +380,8 @@ ENTRY(page_fault) 2.4 ENTRY(thread_starter) 2.5 popq %rdi 2.6 popq %rbx 2.7 + pushq $0 2.8 + xorq %rbp,%rbp 2.9 call *%rbx 2.10 call exit_thread 2.11