diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-06-20 17:05:48 +0100 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-06-20 17:05:48 +0100 |
commit | a1f868f2a3bef3d349b679061da57b937ea24b1a (patch) | |
tree | 01783634800dafb398c356ac46a214dd2c29da57 /xen/arch/x86/boot/x86_64.S | |
parent | 7000b6bdac03497819db86818058b43c47bad4dc (diff) | |
download | xen-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.S | 15 |
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 |