Commit Graph

70 Commits

Author SHA1 Message Date
Dave Anderson
dbb01ee68a Enable kernel text line number capability for the "dis -l", "bt -l",
"sys -c", and "sym" commands for kernels that are configured with
CONFIG_RANDOMIZE_BASE.
(anderson@redhat.com)
2014-02-27 16:35:45 -05:00
Dave Anderson
b8db9a76e9 Added a new "--kaslr=auto" command line option for X86_64 kernels
that that are configured with CONFIG_RANDOMIZE_BASE.  When set to
"auto", the KASLR relocation value will be determined automatically
by comparing the "_stext" symbol value compiled into the vmlinux file
with the _stext symbol value stored in kdump vmcoreinfo data; on live
systems the comparison will be made with the "_stext" symbol value
that is found in /proc/kallsyms.
(ahonig@google.com, anderson@redhat.com)
2014-02-25 15:28:47 -05:00
Dave Anderson
648d0f62c5 Added a new "--kaslr <offset>" command line option for X86 or
X86_64 kernels that are configured with CONFIG_RANDOMIZE_BASE.
The offset value must be equal to the difference between the
symbol values compiled into the vmlinux file and their relocated
value.
(ahonig@google.com, anderson@redhat.com)
2014-02-21 10:32:04 -05:00
Dave Anderson
c0b7a74fc1 Fix to prevent a possible invocation-time error on Linux 3.7 and
later kernels configured with CONFIG_SLAB, running against vmcore
files filtered with the makedumpfile(8) facility.  Without the
patch, the message "crash: page excluded: kernel virtual address:
<address>  type: kmem_cache buffer" is immediately followed by
the message "crash: unable to initialize kmem slab cache subsystem".
Because of a kernel data structure name change from "cache_cache" to
"kmem_cache_boot", the crash utility failed to properly downsize
the stored size of the kernel's kmem_cache data structure from the
size indicated by the vmlinux debuginfo data.  This in turn could
lead to reading beyond the end of a kmem_cache data structure into
a page of memory that had been excluded from the vmcore.  The fix
was also applied to kernels configured with CONFIG_SLUB.
(anderson@redhat.com)
2014-02-20 15:36:25 -05:00
Dave Anderson
51f0a176c4 Fix for custom X86_64 kernels that change the declaration of the
context_switch() function so that it is not an inline function.
Without the patch, the message "crash: cannot determine thread return
address" is displayed during invocation, and backtraces of blocked
tasks may have missing or invalid frames.
(ahonig@google.com)
2014-02-20 14:53:13 -05:00
Dave Anderson
967e95de72 crash-7.0.4 -> crash-7.0.5 2014-02-14 11:29:18 -05:00
Dave Anderson
a70d608406 Fix for the X86_64 "bt" command if an async page fault exception
occurred in a KVM guest running a Linux 2.6.38 or later kernel.
Without the patch, the exception frame register dump is not displayed
above the "async_page_fault" stack frame.
(anderson@redhat.com)
2014-02-12 15:13:00 -05:00
Dave Anderson
4502313d43 Update crash banner copyright to 2014
(anderson@redhat.com)
2014-02-06 09:12:52 -05:00
Dave Anderson
4ba15a6172 Reduce the number of CTRL-c entries required to unconditionally
terminate any manually-entered command from three to one.
(anderson@redhat.com)
2014-01-31 13:42:12 -05:00
Dave Anderson
472aa4948b When invoking a crash session with a compressed vmlinux file,
make the same host-machine/vmlinux endian verification that is
done with uncompressed vmlinx files.
(anderson@redhat.com)
2014-01-29 15:23:51 -05:00
Dave Anderson
8697c8c176 Fix for the X86_64 "bt" command if a page fault exception was
generated by the invalid contents of the RIP register.  Without
the patch, the exception frame register dump is not displayed
above the "page_fault" stack frame; and in a related issue, the
"bt -e" option will not find and display the exception frame.
(anderson@redhat.com)
2014-01-29 15:22:22 -05:00
Dave Anderson
47a0fa259a Enhancement of the X86_64 "bt" command to more correctly determine
the function frame that called into a function that was interrupted.
Without the patch, the first frame just above an IRQ exception frame
register dump may show an invalid/stale function.
(anderson@redhat.com)
2014-01-29 15:20:47 -05:00
Dave Anderson
8807d12cf0 Fix for the X86_64 "bt" command to prevent an unwarranted message
indicating "WARNING: possibly bogus exception frame" generated
from a task that was in the process of being exec'd from a kernel
thread via the call_usermodehelper() facility.
(anderson@redhat.com)
2014-01-29 15:19:08 -05:00
Dave Anderson
0c12ab1094 Create a new memory display format for an address that comes from
a slab object, consisting of the slab cache name and the address
value, separated by a colon, and encompassed in brackets:

  [slab-cache-name:address]

Enhanced the "bt -F" option such that if "-F" is entered twice,
and if the stack frame contents reference a slab cache object, both
the slab cache name and the stack contents will be displayed within
brackets.

Enhanced the "rd -S" option such that if "-S" is entered twice,
and if the memory contents reference a slab cache object, both the
slab cache name and the memory contents will be displayed within
brackets.
(anderson@redhat.com)
2014-01-29 15:12:01 -05:00
Dave Anderson
d4f34069fd When executing the commands from an input file specified by the
"-i <file>" command line option, or when accepting input from a
file as a set of commands or as a set of command arguments using the
"<" redirection character, unconditionally cease the operation if
CTRL-c is entered.  Without the patch, depending upon the command
that was running when the SIGINT was received, the operation may
continue uninterruptibly until the file contents are consumed.
(anderson@redhat.com)
2014-01-29 15:09:17 -05:00
Dave Anderson
6a3ba6ae7b Fix for the "kmem -S" command for kernels that are configured with
CONFIG_SLUB.  Eash per-cpu slab object dump may show incorrect
ALLOCATED and FREE values; and as seen on Linux 3.5 and later
kernels, the TOTAL value and the number of individual objects dumped
may also be incorrect (too small).
(anderson@redhat.com)
 Please enter the c mmit message for your changes. Lines starting
2014-01-29 15:06:53 -05:00
Dave Anderson
bc21fc9263 Fix for the "kmem -S" command on Linux 3.1 and later kernels that are
configured with CONFIG_SLUB.  Because the the page structure's inuse
and objects fields used by SLUB were changed from discrete u16 types
to bit-fields within an unsigned int, the display of per-node partial
slab statistics are incorrect.  Without the patch, the TOTAL and
ALLOCATED values are incorrectly shown as equal values, and therefore
the FREE value is always zero.
(anderson@redhat.com)
2014-01-29 15:04:55 -05:00
Dave Anderson
d49b5eff88 Add support for Xen PVH guest types introduced in Xen 4.4. Without
the patch, running against a Xen 4.4 hypervisor binary would fail
during session initialization with the error message "crash: invalid
structure member offset: domain_is_hvm".  In addition, the PVH guest
type is being registered internally as an HVM guest type, the debug
"help -X ofs" command's display of the domain_domain_flags offset
has been fixed to show it in decimal, and the setting of the internal
dc->domain_flags has been fixed to contain all flags set, not just
the first one found.
(dslutz@verizon.com)
2014-01-29 15:02:07 -05:00
Dave Anderson
bb3e3a63b9 Fix for the "runq -g" option for kernels that are configured with
CONFIG_FAIR_GROUP_SCHED, but not CONFIG_CFS_BANDWIDTH.  Without the
patch, the command fails with the message "runq: invalid structure
member offset: cfs_rq_throttled".
(vinayakm.list@gmail.com)
2014-01-29 14:56:10 -05:00
Dave Anderson
03e3937ec7 Initial commit: crash-7.0.4 2014-01-28 16:46:11 -05:00