- On initialization crash verifies the core based on the text
referenced by the linux_banner symbol in the supplied core. It
chooses how to get the address of the text based on the symbol
type decoded with gdb. For some compressed kernels with an
accessible debuginfo file the type is not supported (bss segment
found, data reference expected) but the symbol and it's value are
valid. This causes the linux_banner text to be used as the
"address" of the linux_banner and that's an invalid address for
the coredump causing crash to fail to load reporting something
like:
WARNING: invalid linux_banner pointer: 65762078756e694c
where the address is obviously ASCII text used as a number. A
SUSE patch to support compressed kernel binaries introduces the
behavior, it does not happen for upstream crash source as-is. The
difference is whether the symbol details are obtained from the
kernel binary or debuginfo (fails for some debuginfos).
* crash-get-linux_banner-without-using-syment-type.patch
In verify_version(), choose how to obtain the linux_banner address
based on the result of get_symbol_type() instead. TYPE_CODE_ARRAY
causes the value of the symbol obtained from gdb to be used.
TYPE_CODE_PTR causes the sybol data to be read to get the address.
Default is unrecognized type but a warning is shown and the value
obtained from gdb used as a best case choice.
(bsc#1190434 c#24)
OBS-URL: https://build.opensuse.org/request/show/1112906
OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=384
- crash source nests gdb source but gdb has a new build error on
Factory due to the bug and build environment modifications. The
fix is upstream gdb but not upstream crash's gdb.
Created crash patch:
crash-gdb-add-proc_service-sync-with-GLIBC.patch
to create the gdb patch in expanded crash and added to the gdb
Makefile patch it's application. Resolves the build error.
- Upgrade of source tarball to 7.1.8 from upstream and refresh of
patches to align with the version. For a detailed changelog of
the source tarball see:
http://people.redhat.com/anderson/crash.changelog.html
Adds a feature to permit the use of the command-line options
"--kaslr=<offset>" and/or "--kaslr=auto" with the x86 32-bit
architecture.
OBS-URL: https://build.opensuse.org/request/show/483427
OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=266
- Upgrade of source tarball to 7.1.3 from upstream and refresh of
patch series to match. For the changelog of the source tarball
see:
http://people.redhat.com/anderson/crash.changelog.html
Feature enhancements include:
- Introduction of the "dis -f <address>" option, which
disassembles from the target address until the end of the
function.
- Introduction of the "dis -s <address>" option, which displays
the filename and line number that is associated with the
specified text location, followed by a source code listing if
it is available on the host machine.
- Added a new "--src <directory>" command line option for use
by the "dis -s" option if the kernel source code is not
located in the standard location that is compiled into the
kernel's debuginfo data.
- Upgrade to 7.1.2 from upstream. For a detailed changelog see
http://people.redhat.com/anderson/crash.changelog.html
- Refreshed patch series with some changes required to
adjust for git host changes in eppic-switch-to-system-lib.patch
OBS-URL: https://build.opensuse.org/request/show/329794
OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=254
- Implementation of 7.0.4 from upstream and patch refresh.
- Fix for the "ps" command's display of per-task RSS and %MEM values
in Linux 2.6.34 and later kernels in which SPLIT_RSS_COUNTING is
enabled. Without the patch, the values are only taken from each
task's mm_struct.rss_stat structure, which may contain stale values
because they may not be synchronized with the RSS values stored
in each per-thread task_struct.rss_stat structure; this may lead
to invalid or slightly low RSS values, and worst-case, the %MEM
value may show garbage percentage values.
(vinayakm.list@gmail.com)
- Addressed a few (harmless) Coverity Scan complaints in diskdump.c:
1579:dead_error_line – Execution cannot reach this expression ""|""
inside statement "fprintf(fp, "%sDUMP_DH_COMP...".
1574:dead_error_line – Execution cannot reach this expression ""|""
inside statement "fprintf(fp, "%sDUMP_HEADER_...".
1571:dead_error_line – Execution cannot reach this expression ""|""
inside statement "fprintf(fp, "%sDUMP_HEADER_...".
(anderson@redhat.com)
- Addressed two warnings when compiling diskdump.c on 32-bit architectures
when the snappy library is built in:
diskdump.c:1046: warning: passing argument 3 of
'snappy_uncompressed_length' from incompatible pointer type
/usr/include/snappy-c.h:120: note: expected ‘size_t *’ but argument
is of type ‘ulong *’
diskdump.c:1056: warning: passing argument 4 of ‘snappy_uncompress’
from incompatible pointer type
/usr/include/snappy-c.h:103: note: expected ‘size_t *’ but argument
is of type ‘ulong *’
(anderson@redhat.com)
- Created a simpler interface with the internal do_list() function.
OBS-URL: https://build.opensuse.org/request/show/214996
OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=227
- Implementation of 7.0.3 from upstream and patch refresh.
- Fix for the ARM architecture if the backtrace unwind information
cannot be gathered during session initialization. Without the patch,
the two unwind-related warning messages indicating "WARNING: UNWIND:
failed to gather unwind_table list" and "WARNING: UNWIND: failed to
initialize module unwind tables" are followed by the fatal error
message "crash: cannot hash task_struct entries".
(anderson@redhat.com)
- Fix for the "help -[Dn]" dumpfile information display of the GUID EFI
table in the header of SADUMP dumpfiles. Without the patch, only 33
of the 36 bytes in the table are translated.
(d.hatayama@jp.fujitsu.com)
- Fix for the determination of the kernel NR_CPUS configurable for
Linux 3.8 and later kernels that are configured with CONFIG_SLAB.
Without the patch, the kernel's compiled-in NR_CPUS value was
incorrectly calculated to be the sum of the kernel's NR_CPUS and
MAX_NUMNODES configurables.
(anderson@redhat.com)
- In the next release of makedumpfile, the status field of the
dumpfile header of compressed kdumps will show the compression
type that was utilized. The "help -[Dn]" output has been updated
to display that information.
(anderson@redhat.com)
- For kernels configured with CONFIG_SLAB in which an array_cache
pointer referenced by a kmem_cache structure is invalid, the
individual cache(s) will be marked as invalid. During session
initialization, the message "crash: kmem_cache: <cache-address>:
invalid array_cache pointer" will be displayed, and during runtime,
attempts to access the cache(s) will result in a message indicating
OBS-URL: https://build.opensuse.org/request/show/207895
OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=220
- Update to crash 6.0.6 from upstream and adjust patch alignment
to match new crash source. Also removed the following patch as it
is already applied in new source crash-foreach-match-running.patch
glibc requirement increases to 2.15
6.0.6 changelog is:
o Extend the supported cross-architecture build capability so
that it applies to the SIAL extentension module. Without the
patch, when building the SIAL module an environment where the
overlying crash utility was built with "make target=ARM",
"make target=PPC", or "make target=X86", the SIAL extension
module would continue to be built for the host architecture
o Fixes for memory leaks and possible segmentation violations
when unloading SIAL extension module scripts.
o Fix for the new "foreach RU" task state qualifier. Without the
patch, the runnable tasks are not selected.
o Fix to disallow multiple task states from being entered using
the "foreach <task-state>" qualifier. Without the patch, if
multiple states were entered, the last one on the command line
would be honored.
o Fix for the "extend" command to allow the usage of 32-bit PPC
extension modules. Without the patch, the command fails with the
message: "extend: <object>.so: not an ELF format object file".
o If an input line starts with "#" or "//", then the line will be
saved as a comment that is visible when re-cycling through the
command history list.
o Fix for a crash-5.1.9 regression that broke the "bt -g" option.
Without the patch, the option is ignored completely.
o Fix for s390x virtual-to-physical translation of virtual
addresses that are backed by 1MB pages.
o The s390x has a dumpfile method that creates "live dumps", where...
OBS-URL: https://build.opensuse.org/request/show/121231
OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=196
- Update to crash 6.0.5 from upstream and adjust patch positions
to match current crash source.
6.0.5 changelog is:
o Enhancement to the "foreach" command to allow any of the "name"
arguments to be POSIX extended regular expressions. The
expression string must be encompassed by "'" characters, and
will be matched against the names of all tasks.
o Fix for the embedded gdb module's "ptype" command, and by
extension, the crash utility's "struct" command, to be able to
fully display embedded structure or union members of a
structure/union. Without the patch, if a structure or union is
a member of a structure or union that is a member of a
structure or union, then it is displayed as "struct {...}" or
"union {...}".
o Extend the "ps -l" output to also display the task state next
to its last_run/timestamp value.
o Enhancement to the "foreach" command which adds a new "state"
task-indentifier argument that filters tasks by their task
state. The state argument may be any of the task states
displayed by the "ps" command: RU, IN, UN, ST, ZO, SW or DE.
o Implemented a new pc->cmd_cleanup function pointer and an
optional pc->cmd_cleanup_arg argument that will allow any
command to register a function and an optional argument that
will be called after a command has completed successfully, or
more likely, unsuccessfully. Normally the only cleanup required
for a command is the freeing of buffers that were allocated
with GETBUF(), but that is performed automatically after each
command is run. However, with the introduction of the new
POSIX regular expression functionality of the "foreach"
command, there needed to be a way to call regfree() in the case
where where regcomp() was called successfully, but then the
command later encountered one of several fatal error
conditions. This facility is also available for use by
extension module commands.
o Enforce the usage of a kernel thread's pgd from its active_mm
for the ARM "vtop -c" command; if its active_mm is NULL, make
the command fail similarly to the other architectures,
displaying the error message "vtop: no active_mm for this
kernel thread".
o Fix for the x86_64 "bt" command running against recent kernels
if an active task was operating on its IRQ stack when the crash
occurred. Without the patch, the determination of the IRQ
exception frame was off-by-8, displaying invalid register data
and the error message "bt: WARNING: possibly bogus exception
frame".
o Update to handle the vfsmount structure change in 3.3 kernels,
in which most members of the vfsmount structure have been moved
into a new "struct mount", and the vfsmount structure has been
embedded in the new mount structure. Without the patch, the
following commands will fail, displaying the following error
messages:
mount: "mount: invalid structure member offset: vfsmount_mnt_list"
files: "files: invalid structure member offset: dentry_d_covers"
vm: "vm: invalid structure member offset: dentry_d_covers"
swap: "swap: invalid structure member offset: dentry_d_covers
fuser: "files: invalid structure member offset: dentry_d_covers"
The "fuser" command generates the above error because it uses
the "files" command behind the scenes.
o Fix for the "ps" command to prevent the display of "??" under
the ST (task state) column. Without the patch, in more recent
kernels, if more than one bit were set in the task_struct.state
field, the state would display "??". With the fix, the primary
state will always be displayed.
o Update to the output of the "set" command when it displays a
task's state. Without the patch, if more than one bit was set
in the task_struct.state field, "STATE: (unknown)" would be
displayed. With the fix, all bits in both the task_struct.state
and task_struct.exit_state fields are translated.
o Implemented a new "vm -P <vma-address>" option, which is similar
to "vm -p", but only does the page translations of the specified
VM area of a context.
o Add support for the Freescale PowerPC e500mc version of the E500
processor chipset, and rework the PPC platform-specific code in
order to more easily support new processors.
o Implemented a new "gdb" crash environment variable that can be
used to alter a crash session's behavior such that all commands
are passed directly to the embedded gdb module. The new mode
is turned on and off by entering "set gdb on" and "set gdb off".
When running in this mode, the command prompt will be "gdb>".
In order to execute native crash commands while running in this
mode, precede the command with the "crash" directive, for
example, "crash ps".
o Fix for a "*** stack smashing detected ***: crash terminated"
failure during the initial system banner display on a 32-bit
PPC platform.
o Redesigned/simplified the internal read_string() function to
prevent a potential segmentation violation.
o Updates for the 32-bit PPC "vtop" command output:
(1) Translate kernel virtual addresses for FSL BOOKE by using
the TLBCAM setting
(2) Remove the PMD line from the display
(3) Fix the displayed PHYSICAL values of FSL BOOKE PTE format
o Fix for crash invocation failure on 3.3-era kernels in which
the former standalone "xtime" timespec structure has been moved
into the "timekeeper" structure. Without the patch, the crash
session would fail early on with the message "crash: cannot
resolve: xtime". The patch also prevents the crash session
failure in the unlikely event that the timespec access fails.
OBS-URL: https://build.opensuse.org/request/show/111468
OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=194
- Update to crash 6.0.4 from upstream and adjust patch locations
to match current crash source.
6.0.4 changelog is:
o Fix to allow the recently-added "mod -g" and "mod -r" options
to be used together.
o Additional update for 3.1.x and later kernels configured with
CONFIG_SLAB, which have replaced the kmem_cache.nodelists[]
array with a pointer to an outside array.
o Document the "crash [-h|--help] all" option in the crash.8 man
page and in the "crash [-h|--help]" output.
o Fix the S390/S390X-specific "s390dbf" command's "hex_ascii"
debug data printing routine to prevent the display of
non-ASCII characters.
o Fix for ARM stack unwinding on 3.2 and later kernels due to
commit:
http://git.kernel.org/linus/de66a979012dbc66b1ec0125795a3f79ee667b8a
o Implemented a new "search -x <count>" option that displays the
memory contents before and after any found search target.
o Fix for the x86_64 Xen hypervisor "bt" command. Without the
patch, the contents of the RDX register in exception frames
incorrectly shows the contents of the RCX register.
o Implementation of a platform-based vmalloc address translation
scheme for the 32-bit PPC architecture, introducing suppport
for the PPC44X platform while maintaining the current default
platform.
o Fix for the usage of native gdb commands where the command
output is redirected to a pipe and then redirected to a file.
o Fix to prevent a crash session that is run over a network
connection that is killed/removed from going into 100%
cpu-time loop.
o Fix for the support of PPC64 compressed kdumps, a regression
that was introduced in crash-6.0.3 when support for 32-bit PPC
compressed kdumps was implemented.
o Fix for the x86_64 "bt" command to prevent the possible
skipping of the stack frame just above an exception frame that
indicates "[exception RIP: unknown or invalid address]".
Patches with modified target locations are:
crash-make-emacs-default.diff
crash-sles9-time.patch
crash-crosscrash-hint.diff
crash-missing-declarations.patch
OBS-URL: https://build.opensuse.org/request/show/108994
OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/crash?expand=0&rev=192