Hi Dave,
crash has a funny bug that bt command wrongly shows RCX value
as RDX value for exception stack of x86_64 xen hypervisor.
Here is an example.
RDX is 0xcfc but bt shows 0x4 (== RCX) for it.
ffff828c802f0fa0: 0000000000000246 00000000ffffffff F...............
R8 RAX
ffff828c802f0fb0: 0000000000000004 0000000000000cfc ................
RCX ^^^^ RDX ^^^^
ffff828c802f0fc0: 0000000000000000 00000000800f0000 ................
RSI RDI
crash> bt
PCPU: 0 VCPU: ffff8300695be080
#0 [ffff828c802f0f40] kexec_crash at ffff828c8010d227
#1 [ffff828c802f0f50] handle_ist_exception at ffff828c801926f7
[exception RIP: pci_conf_read+130]
RIP: ffff828c801537e2 RSP: ffff828c802f7de0 RFLAGS: 00000006
RAX: 00000000ffffffff RBX: 0000000000000004 RCX: 0000000000000004
RDX: 0000000000000004 RSI: 0000000000000000 RDI: 00000000800f0000
^^^^
RBP: 0000000000000cfc R8: 0000000000000246 R9: 0000000000000000
R10: 0000000000000000 R11: 000000000000ffff R12: 0000000000000004
R13: 0000000000000000 R14: 0000000000000000 R15: ffff8300695be080
ORIG_RAX: 0000000200000000 CS: e008 SS: 0000
--- <exception stack> ---
#2 [ffff828c802f7de0] guest_io_read at ffff828c80148345
#3 [ffff828c802f7e20] do_general_protection at ffff828c8014a00c
#4 [ffff828c802f7eb0] reprogram_timer at ffff828c8012c55e
#5 [ffff828c802f7f20] handle_exception_saved at ffff828c80192495
crash>
Signed-off-by: Seiichi Ikarashi <s.ikarashi(a)jp.fujitsu.com>
--- a/x86_64.c 2012-02-04 04:22:33.000000000 +0900
+++ b/x86_64.c 2012-02-21 17:04:09.032121837 +0900
@@ -6562,7 +6562,7 @@ x86_64_print_eframe_regs_hyper(struct bt
fprintf(fp, " RAX: %016lx RBX: %016lx RCX: %016lx\n",
up[10], up[5], up[11]);
fprintf(fp, " RDX: %016lx RSI: %016lx RDI: %016lx\n",
- up[11], up[13], up[14]);
+ up[12], up[13], up[14]);
fprintf(fp, " RBP: %016lx R8: %016lx R9: %016lx\n",
up[4], up[9], up[8]);
fprintf(fp, " R10: %016lx R11: %016lx R12: %016lx\n",