[Crash-utility] [PATCH] x86_64: print wrong value for RDX register.
Dave Anderson
anderson at redhat.com
Tue Feb 21 16:05:52 UTC 2012
----- Original Message -----
> 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 at 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",
Thanks Seiichi -- it looks it's been doing that since Xen hypervisor
support was originally added.
Queued for crash-6.0.4.
Dave
More information about the Crash-utility
mailing list