aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/boot/x86_64.S
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-20 17:05:48 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-20 17:05:48 +0100
commita1f868f2a3bef3d349b679061da57b937ea24b1a (patch)
tree01783634800dafb398c356ac46a214dd2c29da57 /xen/arch/x86/boot/x86_64.S
parent7000b6bdac03497819db86818058b43c47bad4dc (diff)
downloadxen-a1f868f2a3bef3d349b679061da57b937ea24b1a.tar.gz
xen-a1f868f2a3bef3d349b679061da57b937ea24b1a.tar.bz2
xen-a1f868f2a3bef3d349b679061da57b937ea24b1a.zip
x86: early exception enhancement
In order to at least have some minimal debuging capabilities when Xen crashes really early, dump out registers and stack contents in a raw form. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/arch/x86/boot/x86_64.S')
-rw-r--r--xen/arch/x86/boot/x86_64.S15
1 files changed, 13 insertions, 2 deletions
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index d3c11b8788..46c34c1702 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -56,12 +56,23 @@
/* This is the default interrupt handler. */
int_msg:
- .asciz "Unknown interrupt\n"
+ .asciz "Unknown interrupt (cr2=%016lx)\n"
+hex_msg:
+ .asciz " %016lx"
ignore_int:
- cld
+ SAVE_ALL
+ movq %cr2,%rsi
leaq int_msg(%rip),%rdi
xorl %eax,%eax
call printk
+ movq %rsp,%rbp
+0: movq (%rbp),%rsi
+ addq $8,%rbp
+ leaq hex_msg(%rip),%rdi
+ xorl %eax,%eax
+ call printk
+ testq $0xff8,%rbp
+ jnz 0b
1: jmp 1b