FYI: x86_64 bug when using gdb with vmcore
anderson at redhat.com
Fri Feb 5 11:53:18 EST 2010
The kexec/arch/x86_64/crashdump-x86_64.h file contains a
stale PAGE_OFFSET value. In 2.6.27 it was changed from
0xffff810000000000UL to 0xffff880000000000UL. This is
only a problem when using gdb with the vmlinux/vmcore
pair, because gdb relies upon the PT_LOAD segment's p_vaddr
values in the ELF header to be correct.
Anyway, in the RHEL6 kexec-tools, this simple patch
-#define PAGE_OFFSET 0xffff810000000000UL
+#define PAGE_OFFSET 0xffff880000000000UL
which is OK since the RHEL6 version of kexec-tools
will only be used with RHEL6 kernels.
But for backwards compatibility, the better way to do
it would be to check the utsname of the running kernel,
and use the right value.
But again, this is only required for gdb usage. The
crash utility (and makedumpfile) make kernel version checks
to determine which x86_64 PAGE_OFFSET value is applicable,
and don't rely on the ELF header p_vaddr values for
the unity-mapped regions.
More information about the kexec