- Fix for 32-bit SADUMP dumpfiles to correctly check whether a
requested physical address is within the 0-640K backup region.
Without the patch, requested physical addresses that are larger
than 32-bits are truncated to 32-bit values, leading to unexpected
- Added support for the ELF dumpfile type that is generated by the new
"virsh dump --memory-only" option. The "--memory-only" option uses
a new "dump-guest-memory" QEMU monitor command that creates an ELF
kdump vmcore clone. The "virsh dump" command continues to borrow
the "migrate" QEMU monitor command to create a file that is designed
for guest migration, and not well-suited for a vmcore because it is
not designed for random-access of physical memory. A new "help -r"
option has been added to dump the registers that are stored in
per-cpu "QEMU" ELF notes; those notes are used to distinguish this
dumpfile type from regular kdump ELF vmcores. The patch also
combines common functionality between the new format and the SADUMP
- Fix for the "runq" command for kernels that have the CFS scheduler.
Without the patch, a cpu's RT runqueue may incorrectly display
"[no tasks queued]" when in fact there are tasks on its queue.
- In the highly-unlikely event that a pre-Linux 3.5 kernel's log buffer
cannot be read during initialization, display a message indicating
"WARNING: cannot read log_buf contents", and just continue. Without
the patch, a "readmem" error would be displayed and the crash session
would be killed.
- Updated the "net -a" option to support Linux 2.6.9 to 3.6.0. Without
the patch, the option displayed "net: -a option not supported or
applicable on this architecture or kernel".
- Enhanced the "net -a" option to show the struct neighbour address
associated with each line of output.
- Fix for the "runq" command for kernels that are configured with
CONFIG_RT_GROUP_SCHED. Without the patch, tasks contained within
an RT group scheduling entity are not displayed.
- Fix for "crash --version" or "crash -v" to prevent the sourcing
of a .gdbinit file that is located in the current directory.
- Preemptive fix to handle this patch to the x86 devmem_is_allowed()
function that was posted on the Linux Kernel Mailing List here:
If the proposed kernel patch put into place, a failed attempt to
use /dev/mem when the kernel is configured with CONFIG_STRICT_DEVMEM
will not result in an automatic attempt to use /proc/kcore. With
this crash utility patch, the automatic switch to /proc/kcore will
be attempted regardless whether the kernel patch is accepted or not.
- Patch for CVE-2012-3509: libiberty: objalloc_alloc integer overflows
- Fix for Linux 3.0 and later kernels that have been configured with
CONFIG_SLAB, and without CONFIG_NODES_SHIFT (or have set it to 0).
Without the patch, the warning messages "crash: nr_node_ids: symbol
does not exist" and "crash: unable to initialize kmem slab cache
subsystem" are displayed during initialization, and the "kmem -[sS]"
options fail with the message "kmem: kmem cache slab subsystem not
- Allow the build procedure to use an alternate compiler by passing
"make CC=<compiler>" to the top-level Makefile.
- Allow the user to append options to the "configure" script that is
invoked by the initial embedded gdb build procedure. The additional
options should be put in a file named "GDBFLAGS.extra" located in the
- Change for the "ps" command if a task is stopped due to the task
being traced by another task. Without the patch, the traced task
is shown with the "ST" (stopped) status; with the patch it will be
shown with a "TR" (traced) status.
- The "TR" state has been added to the "foreach" command's list of task
state qualifiers. Without the patch, there is no way to filter out
tasks that are stopped due to being traced by another task.
- Fix for passing a a "gdb" command to a crash session via a pipe
if there are any spaces preceding the "gdb" command name in the
string. Without the patch, the command will fail with the error
message "gdb: gdb request failed: <truncated input-string>".
- Preparation for the future S390/S390X structure name change from
"_lowcore" to "lowcore". The patch checks which structure is defined
and uses the correct name.
- Replaced datatype_info() calls in do_radix_tree() and do_rdtree()
with preferred MEMBER_SIZE() macro.
Crash-utility mailing list