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> Index: 2007-06-18/xen/arch/x86/boot/x86_32.S ==================================================================--- 2007-06-18.orig/xen/arch/x86/boot/x86_32.S 2007-06-11 15:01:03.000000000 +0200 +++ 2007-06-18/xen/arch/x86/boot/x86_32.S 2007-06-18 16:43:47.000000000 +0200 @@ -38,15 +38,30 @@ /* This is the default interrupt handler. */ int_msg: - .asciz "Unknown interrupt\n" + .asciz "Unknown interrupt (cr2=%08x)\n" +hex_msg: + .asciz " %08x" ALIGN ignore_int: + pusha cld mov $(__HYPERVISOR_DS),%eax mov %eax,%ds mov %eax,%es + mov %cr2,%eax + push %eax pushl $int_msg call printk + add $8,%esp + mov %esp,%ebp +0: + pushl (%ebp) + add $4,%ebp + pushl $hex_msg + call printk + add $8,%esp + test $0xffc,%ebp + jnz 0b 1: jmp 1b ENTRY(stack_start) Index: 2007-06-18/xen/arch/x86/boot/x86_64.S ==================================================================--- 2007-06-18.orig/xen/arch/x86/boot/x86_64.S 2007-06-04 08:35:35.000000000 +0200 +++ 2007-06-18/xen/arch/x86/boot/x86_64.S 2007-06-18 16:48:00.000000000 +0200 @@ -58,12 +58,40 @@ /* This is the default interrupt handler. */ int_msg: - .asciz "Unknown interrupt\n" + .asciz "Unknown interrupt (cr2=%016lx)\n" +hex_msg: + .asciz " %016lx" ignore_int: + pushq %r15 + pushq %r14 + pushq %r13 + pushq %r12 + pushq %r11 + pushq %r10 + pushq %r9 + pushq %r8 + pushq %rdi + pushq %rsi + pushq %rbp + pushq %rsp + pushq %rbx + pushq %rcx + pushq %rdx + pushq %rax cld + 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 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel