Hi: Six years ago Dave and I were discussing using gdb on KDUMP files:
http://www.redhat.com/archives/crash-utility/2008-March/msg00039.html At the time you weren’t sure of gdb could read 64bit elf headers. I’m trying to look at KDUMP files with gdb and seeing similar problems. I configured and built gdb with –enable-largefile but it didn’t help. I also tried uncommenting _LARGE_FILE in gdb/config.h thought I doubt that’s correct. Wondering what’s been done in the last six years on this. The kernel I’m Running with is only using 4GB but is running in 64 bit mode. Looking at the kexec src if seems KEXEC use to support: # KEXEC_ARGS="--elf32-core-headers" This was used to force the dump to be elf32 just so gdb could read the core file It appears that this support was dropped for 64 bit machines by Vivek Goyak
Who seems was concerned for the health of the crash utility: http://lse.sourceforge.net/kdump/patches/1.101-kdump10/broken-out/x86_64-kdump-remove-elf32-core-header-support.patch
Updated on July 4th of this year and clearly says that gdb can Read KDUMP files but says the crash-dumping kernel should Be started with --elf32-core-headers kernel option: 420 Analysis 421 ======== 422 423 Before analyzing the dump image, you should reboot into a stable kernel. 424 425 You can do limited analysis using GDB on the dump file copied out of 426 /proc/vmcore. Use the debug vmlinux built with -g and run the following 427 command: 428 429
gdb vmlinux <dump-file> 430 431 Stack trace for the task on processor 0, register display, and memory 432 display work fine. 433 434 Note: GDB cannot analyze core files generated in ELF64 format for x86. 435 On systems with a maximum of 4GB of memory, you can generate 436 ELF32-format headers using the
--elf32-core-headers kernel option on the 437 dump kernel. But I can’t fine the string
elf32-core-headers
in the kernel source code.
Looking at the gdb Bugzilla page: https://sourceware.org/bugzilla/buglist.cgi?quicksearch=elf64 Reading a few bug reports seems to indicate that gdb supports 64 bit elf. I’m just trying to get the normal stack back-trace to work, With formal and local variables, from a crash dump as well
as mapping the normal kernel memory so I can follow list like
that for the the system tasks. With gdb I can read the init_task with both gdb and crash but can only follow the list with crash. Anyone know what’s going on? -- Pete/Piet Delaney
O: +1 408 935-1813 C: +1 408 646-8557 H: +1 408 243-8872 Home Email: piet.delaney@xxxxxxxxx |
-- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility