[ubuntu/oneiric] crash 5.1.6-1ubuntu1 (Accepted)

Michael Vogt michael.vogt at ubuntu.com
Fri Jun 17 07:35:23 UTC 2011


crash (5.1.6-1ubuntu1) oneiric; urgency=low

  * Merge from debian unstable.  Remaining changes:
    - debian/patches/01_spu_commands.patch
      + Provides SPU extension support
    - debian/rules:
      + Enable SPU on PPC

crash (5.1.6-1) unstable; urgency=low

  * New upstream version 5.1.5 (see
    http://people.redhat.com/anderson/crash.changelog)
  * Fixed several typos in the updated crash.8 man page.
  * Created a new "rd -a" option that displays printable ASCII data only,
    starting from the specified location.  If a "count" argument is not
    entered, the display stops upon encountering the first non-printable
    character.
  * Fix for the "search -k" option on X86 kernels whose first memmap page
    structure does not map to physical address 0.  Without the patch, the
    identity-mapped region of the first memory node would not be searched.
  * Fix for the "search -k" option in the highly unlikely case of kernels that
    have multiple NUMA nodes that are not sequential with respect to their
    node IDs and the physical memory they reference, have physical memory
    holes between any of the nodes, and do not have memmap page structures
    referencing the non-existent inter-node physical memory.  In that event,
    it is conceivable that a NUMA node would be skipped.
  * If the "kmem <address>" argument is a virtual address inside a kernel
    module, the first item displayed is the address, followed by its symbol
    type, and its symbol-name-plus-offset string.  This patch appends the
    module name in brackets, similar to what is displayed if "sym <address>"
    is entered.
  * Fix for "kmem -s <address>" in kernels configured with CONFIG_SLUB and
    CONFIG_PAGEFLAGS_EXTENDED if the address is contained in a page other than
    the first page in a compound, multi-page, slab.  Without the patch, the
    command would fail with the message "kmem: address is not allocated in
    slab subsystem: <address>".
  * Created a new "rd -N" option that displays 16- and 32-bit data in network
    byte order, performing byte-swapping if appropriate.
  * Fix for a compiler warning when building with "make warn".  Without the
    patch, memory.c generates a message indicating "kernel.c: In function
    ‘back_trace’:" followed by 17 messages indicating "kernel.c: 2187:
    warning: ‘btsave.<member>’ may be used uninitialized in this function",
    where there is one message for each <member> of the bt_info structure.
  * Updated the #define of NR_SECTION_ROOTS to match its change upstream that
    prevents its value from being calculated to be zero.
  * Fix for a double-free() in the unlikely event of a readmem() failure in
    the ARM architecture's read_module_unwind_table() function.
  * Updates to support CONFIG_SPARSEMEM for the ARM architecture.
  * Extended the "mach" command to display the size and address of each
    per-cpu IRQ stack and per-cpu exception stack, if they exist.  This
    extension is applicable to the x86_64 and ppc64 architectures, and the x86
    architecture if applicable.  Prior to this patch, the values were only
    accessible via "help -t" or "help -m".
  * Created a new "kmem -o" option that dumps each cpu's offset value that is
    added to per-cpu symbol values to translate them into kernel virtual
    addresses.  Prior to this patch, the values were only accessible via "help
    -k".
  * Removed the "kmem [-[l|L][a|i]]" options from being advertised by the
    "kmem" help page; the options have been obsolete since the Linux version
    2.2 timeframe.
  * Fix to support Linux 3.x version number change.  Without the patch, the
    crash session fails with kernel version 3.0 and later, displaying the
    message "WARNING: kernel version inconsistency between vmlinux and [live
    memory or dumpfile]", followed by the fatal error message "crash:
    incompatible arguments: vmlinux is not SMP -- [live system or dumpfile] is
    SMP".
  * Updates to the sial.c extension module to support the Linux 3.x version
    number change.
  * Created a new "kmem -g [flags]" option that displays the enumerator value
    of bits in the page structure's "flags" field.  With no "flags" argument,
    the enumerator value of all bits are displayed; when a hexadecimal "flags"
    option is added, just the bits in the value are translated.  This option
    only works with 2.6.26 and later kernels, which contain the "enum
    pageflags".

crash (5.1.5-1) unstable; urgency=low

  * New upstream version 5.1.5 (see
    http://people.redhat.com/anderson/crash.changelog)
  * Fix to allow a vmlinux.bz2 file to be accepted when it is part of a
    relative or absolute pathname.  Without the patch, the file is rejected
    with the message "crash: <path-to>/vmlinux.bz2: not a supported file
    format", although it is still possible to use it with the "-f" flag.
  * Fix for the usage of a vmlinux.gz or vmlinux.bz2 file if the relevant
    gunzip or bunzip2 file is not located in /usr/bin.  Without the patch on
    an Ubunutu system, the uncompression fails because those binaries are only
    located in the /bin directory.  Also fixed the uncompression error message
    to differentiate between gunzip and bunzip2.
  * Created a new exist_regs_in_elf_notes() function for extension modules to
    pre-determine whether an ELF note containing registers exists for a
    specified task.  The function is also used by the currently-existing
    get_regs_from_elf_notes() function to clean up redundant code in the
    various get_<arch>_regs_from_elf_notes() functions that it calls.
  * Exported the formerly static x86_64_exception_frame() function to
    extension modules, and created a new EFRAME_INIT flags argument that
    directs the function to fill in the x86_64 pt_regs offset table and return
    any errors encountered in doing so.
  * Created and exported a new get_kvm_register_set() interface for extension
    modules to get a copy of the per-cpu registers stored in the kvmdump
    header.
  * Fix for the handling of x86_64 compressed kdump dumpfiles where the
    crashing system contained more than 454 cpus.  Without the patch, the
    crash session fails during initialization with the error message "crash:
    compressed kdump: invalid nr_cpus value: <cpus>" followed by "crash:
    vmcore: not a supported file format".
  * Fix for the "uvtop" and "vm -p" commands when run on tasks that have
    performed an mprotect(PROT_NONE) on a user-space page.  Because the
    PAGE_PRESENT bit is not set in that case, the page was presumed to be
    swapped out.  Without the patch the "vtop <address>" command fails with
    the error message "vtop: cannot determine swap location", and "vm -p"
    indicates "SWAP: (unknown swap location)" when iterating over the page.
  * Fix for the use of the "-g vmlinux" command line option by non-root users
    if the /dev/crash module has been preloaded.  Without the patch, after the
    vmlinux file's debugging information has been shown, the error messages
    "ERROR: Removing 'crash': Operation not permitted" and "NOTE:
    cleanup_memory_driver failed" are displayed.
  * Fix for the s390x "bt" command to handle a program check interrupt while
    operating on the process stack.  Without the patch, the backtrace stops
    prematurely upon reaching the pgm_check_handler() interrupt handler.
  * Long overdue rewrite of the crash.8 man page and the associated "crash -h"
    built-in usage display.  The crash.8 man page clarifies the required
    invocation options, adds all of the rarely-used command line options that
    have proliferated over the years, and updates the ENVIRONMENT variables
    section.  The "crash -h" output closely mimics the relevant parts of the
    crash.8 man page.
  * Fix for the embedded gdb module to determine member offsets of the
    pglist_data structure when the kernel was compiled with gcc 4.6.0.
    Without the patch, the system MEMORY size shown by the initial system data
    and by the "sys" command is nonsensical, the "kmem -n" command shows
    faulty memory node data, and if the kernel is configure with CONFIG_SLUB,
    "kmem -[sS]" will fail with numerous "kmem: page_to_nid: cannot determine
    node for pages: <page-address>" errors.  There may be other ramifications
    given that the pglist_data structure is crucial to the functionality of
    the crash utility.
  * Implemented the capability of using the NT_PRSTATUS ELF note data that is
    saved in version 4 compressed kdump headers to determine the starting
    stack and instruction pointer hooks for x86 and x86_64 backtraces when
    they cannot be determined in the traditional manners.
  * Added a new "--osrelease <dumpfile>" command line option that displays the
    OSRELEASE vmcoreinfo string from a kdump dumpfile.
  * Fix to recognize the per-cpu symbol name change from "cpu_info" to
    "ia64_cpu_info" in 2.6.33 and later ia64 kernels.  Without the patch, the
    message "WARNING: cannot find cpuinfo_ia64 location" would appear during
    invocation, and the "mach -c" command would fail in a similar manner,
    indicating "mach: cannot find cpuinfo_ia64 location".
  * Fix for "kmem -[sS]" command on 2.6.39 kernels where the original slab
    structure members have been moved into an anonymous union.  Without the
    patch, either command fails immediately with the error message "kmem:
    invalid structure member offset: slab_list".

crash (5.1.4-1) unstable; urgency=low

  * New upstream version 5.1.4 (see
    http://people.redhat.com/anderson/crash.changelog)
  * Fix for RT kernels in which the schedule() function has become a wrapper
    function that calls the  __schedule() function, and where other functions
    may call __schedule() directly.  Without the patch, a warning message
    indicating "crash: cannot determing thread return address" is displayed
    during invocation on x86_64 machines, and backtraces of blocked tasks may
    have missing or invalid frames.
  * Fix for running against live x86 kernels that were configured with
    CONFIG_PHYSICAL_START containing a value that is greater than its
    CONFIG_PHYSICAL_ALIGN value, and where the first symbol listed by
    /proc/kallsyms is not "_text".  Without the patch, the crash session fails
    during invocation with the error message "crash: vmlinux and /dev/mem do
    not match!" (or "/dev/crash" if applicable).  As a work- around,
    "/proc/kallsyms" can be entered on the command line, or the
    "--reloc=<size>" option could be used, but the fix obviates that
    requirement for live systems.  It should be noted that dumpfiles of
    kernels configured that way still do require that "/proc/kallsyms", or a
    copy of it, or alternatively the "--reloc=<size>" option, to be entered on
    the command line, as detailed in this changelog entry:
    http://people.redhat.com/anderson/crash.changelog.html#4_0_4_5
  * Unlike other extension modules, the "sial.so" module must be built within
    a pre-built crash source tree because it uses header files from the
    embedded gdb module.  Therefore if a crash source tree is laid down,
    entered, and "make extensions" is entered without first building the crash
    utility, the build of sial.so build spews numerous error messages.  To
    avoid that, the sial.mk file has been modified to check whether the
    embedded gdb build has been completed, and if it has not, just displays
    "sial.so: build failed: requires the crash gdb-7.0 module".
  * If an extension module does not have its own <module>.mk file, and is
    built using the extensions/Makefile, then it will be compiled with the
    -Wall flag.
  * The "trace.so" extension module has been improved to use "trace.cmd" to
    implement the "trace show" option, instead of maintaining a redundant code
    base within the module itself.  The trace-cmd command is better, mature,
    and continually maintained.  The new "trace show" option works like so:
    (1) builds trace.dat from the core file and dumps it to /tmp.  (2) execs
    "trace-cmd report" upon the trace.dat file.  (3) splices the output of
    trace-cmd to the user and unlinks the temporary file.
  * Updates to the "trace.so" extension module to extract trace_bprintk()
    formats from a kernel core dump.  It handles both the current format and a
    new format that will be pushed out after the merge window has closed for
    Linux 2.6.40.  The new format is required for the kernel debugfs to export
    the same bprintk data as well.  This means that the trace.so extension
    module will be able to extract more information than trace-cmd itself can
    on a running kernel.
  * Fix for the "gdb" command, or any command that resolves to a gdb command,
    to not strip quotation marks from the input line.  Without the patch, any
    gdb command whose arguments contain quotation marks, (e.g. "printf") would
    fail because they get incorrectly stripped from the input line.
  * Fix for the "p" command if its symbolic argument is a "char *" that points
    to a static data string containing an "%" character.  Without the patch,
    the command results in a segmentation violation.
  * Fix for the "sys -c" option to display an error message if a known
    sys_call_table entry is not a valid system call address.  Without the
    patch, the compromised system call entry is not displayed unless the crash
    debug mode is set to 1 or greater.  With the patch, the system call number
    will be followed by an error message indicating "invalid sys_call_table
    entry: <address> (<symbol-name>)".  This change is only applicable on
    architectures/kernels where the index of the sys_call_table array can be
    confirmed by debuginfo data, i.e., is not a loose calculation based upon
    the next kernel symbol.
  * Print a warning message if there is any inconsistency between the kernel
    version strings found in the vmlinux file vs. the dumpfile or live memory.
    If a System.map file is used to correct the virtual addresses found in the
    vmlinux file, the message is not displayed.
  * Fix for "kmem -v", and all other commands that search through the kernel's
    mapped virtual address list, in x86_64 kernel versions from 2.6.0 to
    2.6.11.  Those kernels contained a "vmlist" and a separate "mod_vmlist"
    list header, both of which point to list of vm_structs that described each
    contiguous block of mapped kernel memory.  2.6.12 and later x86_64 kernels
    consolidated both lists onto the "vmlist".  Without the patch, the list
    headed by "mod_vmlist" was not searched.
  * Clarify the "struct -l offset" option so that it does not imply that the
    address argument is necessarily an embedded list_head pointer.  The "-l
    offset" option essentially provides the capability of the kernel's
    container_of() macro, such that the address of an embedded data structure
    can be used to display its containing data structure.
  * Clarify the help page documentation for the "struct -l offset" option so
    that it does not imply that the address argument is necessarily an
    embedded list_head pointer.  The "-l offset" option essentially provides
    the capability of the kernel's container_of() macro, such that the address
    of an embedded data structure can be used to display its containing data
    structure.

crash (5.1.3-1) unstable; urgency=low

  * Implemented support for using vmlinux files that have been compressed with
    either gzip or bzip2.  For examples:
              # crash vmlinux.gz vmcore
              # crash vmlinuz.bz2
    The uncompressed file will be temporarily stored either in /var/tmp or in
    the directory specified in a TMPDIR shell environment variable.  The
    compressed filename must at least begin with "vmlinux" so as to avoid any
    attempt to uncompress a vmcore file.  Gzip'd vmlinux files are preferable
    since the uncompress operation is less time-consuming.
  * Prevent an unnecessary warning message that was introduced in version
    5.1.0 that indicates "WARNING: cannot read .debug_frame data from
    <namelist>" when running against vmlinux executables that have a separate
    ".debug" debuginfo file, such as RHEL3 vmlinux kernels.  With the patch,
    the message is only printed if CRASHDEBUG(1).
  * Fix for the x86_64 "bt" command if the shutdown NMI is issued to a 32-bit
    task that has executed a "sysenter" instruction and the RSP still contains
    the zero value loaded from the MSR_IA32_SYSENTER_ESP register.  Without
    the patch, the backtrace issues a warning message indicating "WARNING:
    possibly bogus exception frame", and is unable to make a transition from
    the NMI exception stack.
  * Fixes for the gdb-7.0 sources to address gcc-4.6 compile failures.
    Without the patch, gcc-4.6 generates "error: variable ‘<variable>’ set but
    not used [-Werror=unused-but-set-variable]" fatal errors when the
    (default) -Werror flag is used.  Previous gcc versions considered local
    variables were simply set to some value to be "used", but that is no
    longer the case.
  * Fixes for the top-level crash sources to address gcc-4.6 compiler warnings
    or errors.  Without the patch, building with gcc-4.6 would generate
    numerous "error: variable ‘<variable>’ set but not used
    [-Werror=unused-but-set-variable]" errors or warnings, depending upon
    whether "make warn" or "make Warn" was used.
  * Removed -Wp,-D_FORTIFY_SOURCE=2 from the WARNING_OPTIONS string due to a
    memmove() oddity seen when using it in conjunction with -O2 with gcc-4.6.
  * Implemented three new options for the "search" command.  This patch adds
    the -c option to search for character strings, the -w option to search for
    unsigned hexadecimal integer values, and -h to search for unsigned
    hexadecimal short values.   The integer and short values are searched on
    integer and short alignments respectively.  The -w option is only
    meaningful on 64-bit systems, to be used in order to search both the upper
    and lower 32-bits of each 64-bit long for the 32-bit value.  Strings are
    searched across contiguous page boundaries, where the page boundaries
    being crossed are relevant to the memory type being searched, i.e., kernel
    virtual, user virtual, or physical memory.
  * Restrict the new "search -p" option to physical memory pages that have an
    mem_map page structure assigned to them.
  * Hardwire the declaration of the user_regs_struct in x86_64.c for kernels
    whose debuginfo data does not contain it.
  * Fix for compiler warnings when building makedumpfile.c and memory.c with
    "make warn" on 32-bit systems.
  * Fix to more correctly determine the KVM I/O hole size and location.  The
    I/O hole size to this point in time is either 1GB or 512MB, but its
    setting is hardwired into the Qemu code that was used to create the
    dumpfile.  The dumpfile is a "savevm" file that is designed to be used for
    guest migration, and since inter-version save/load is not supported, the
    I/O hole information does not have to encoded into the dumpfile.  Without
    the patch, the I/O hole for dumpfiles created by older Qemu version was
    not being set to 1GB, so if the KVM guest was configured with more than
    3GB of memory, the crash session would typically display numerous "read
    error" messages during session initialization.
  * Fix for the x86 "bt" command on RHEL6 kernels that contain a backport of
    upstream commit a00e817f42663941ea0aa5f85a9d1c4f8b212839, which moved x86
    irq-exit functions to a special .kprobes.text section.  Without this
    patch, "bt" would show nonsensical backtraces that begin and end with the
    "ia32_sysenter_target" function, and would dump an invalid kernel-entry
    exception frame.
  * Fix for the x86 "bt" command to fix a possible failure to backtrace a
    non-active "swapper" task.  Without the patch, the backtrace would fail
    with the error message "bt: cannot resolve stack trace".
  * Fix for the x86 "bt" command to prevent the display of a stale interrupt
    exception frame left on the stack of a non-active task.

crash (5.1.1-1) unstable; urgency=low

  * New upstream version 5.1.1 (see
    http://people.redhat.com/anderson/crash.changelog)
  * Fix for the potential to miss tasks when walking the pid_hash table in
    2.6.24 and later kernels.
  * Enhancement for the ARM architecture's "bt" command  to print out the user
    space register set for tasks entering the kernel via the syscall entry
    point.
  * Rework of the handling of "set" commands that are put in .crashrc files so
    that only the following options are resolved prior to session
    initialization: silent, console, core, edit, namelist, and zero_excluded.
    All others are resolved immediately after session initialization is
    complete.  Accordingly, the use of "set -c <cpu>", "set -p", "set -a
    [task|pid]" and set [pid|task]" are now acceptable .crashrc commands.
  * The entering of "set -v" in a .crashrc file would cause an immediate
    segmentation violation.  The "set" command rework above defers the command
    until session initialization is complete.
  * The entering of "set dumpfile <filename>" in a .crashrc file would cause a
    fatal "seek" error during session initalization with most most dumpfile
    types, so the "dumpfile" option has been removed from the "set" command.
  * The execution of "alias" commands from a .crashrc file used to be
    performed immediately; that behavior has been changed so that they are
    executed immediately after session initialization is complete.
  * Enhancement of the "repeat" command to allow command aliases.
  * Fix for running "kmem -s" on a live system if an offline cpu is brought
    back online while the command is executing.  Without the patch, the online
    operation may cause a segmentation violation.
  * Change the behavior of "bt -[tT]" to allow the command options to be run
    on active tasks on live systems.  Without the patch, both command options
    would display the task data banner followed by "(active)".
  * Fix for the ARM architecuture's "irq" command when run on 2.6.36 and later
    kernels.  Without the patch, the command fails with the error message
    "irq: invalid kernel virtual address: 23  type: irq_chip typename".   The
    fix replaces the custom ARM IRQ dumping function with the
    architecture-neutral version.
  * Introduced support for using /proc/kcore as an alternative source of live
    memory to /dev/mem.  Doing so allows vmalloc memory access on 32-bit
    architectures when the underlying mapped physical memory is in highmem,
    which is not allowed by the /dev/mem driver.  It would also be usable on
    systems that are configured with CONFIG_STRICT_DEVMEM but still configured
    with CONFIG_PROC_KCORE.  To enforce the use of /proc/kcore, it may be
    entered on the command line.
  * If a live crash session attempts to use /dev/mem as a live memory source,
    and it is determined that the system is configured with
    CONFIG_STRICT_DEVMEM, /proc/kcore will automatically be tried as an
    alternative.
  * Fix to allow "/dev/crash" to be entered on the command line for live
    sessions.  Because it is used automatically if it exists, it is never
    necessary to enter it on the command line.  However, if it is used,
    without the patch, the session fails during initializaion with the error
    message "crash: /dev/crash: No such file or directory" if the crash.ko
    driver is a module (RHEL4/RHEL5), or "crash: /dev/crash: not a supported
    file format" if the driver is built into the kernel (RHEL6).
  * Fix for the ARM "bt" command to address the issue behind faulty warning
    messages that indicate "WARNING: UNWIND: unsupported personality routine".
  * Fix for the ARM "bt" command to address the issue behind faulty warning
    messages that indicate "bt: WARNING: UNWIND: cannot find index for
    <address>".

Date: Fri, 17 Jun 2011 09:20:33 +0200
Changed-By: Michael Vogt <michael.vogt at ubuntu.com>
Maintainer: Ubuntu MOTU Developers <ubuntu-motu at lists.ubuntu.com>
https://launchpad.net/ubuntu/oneiric/+source/crash/5.1.6-1ubuntu1
-------------- next part --------------
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Fri, 17 Jun 2011 09:20:33 +0200
Source: crash
Binary: crash
Architecture: source
Version: 5.1.6-1ubuntu1
Distribution: oneiric
Urgency: low
Maintainer: Ubuntu MOTU Developers <ubuntu-motu at lists.ubuntu.com>
Changed-By: Michael Vogt <michael.vogt at ubuntu.com>
Description: 
 crash      - kernel debugging utility, allowing gdb like syntax
Changes: 
 crash (5.1.6-1ubuntu1) oneiric; urgency=low
 .
   * Merge from debian unstable.  Remaining changes:
     - debian/patches/01_spu_commands.patch
       + Provides SPU extension support
     - debian/rules:
       + Enable SPU on PPC
 .
 crash (5.1.6-1) unstable; urgency=low
 .
   * New upstream version 5.1.5 (see
     http://people.redhat.com/anderson/crash.changelog)
   * Fixed several typos in the updated crash.8 man page.
   * Created a new "rd -a" option that displays printable ASCII data only,
     starting from the specified location.  If a "count" argument is not
     entered, the display stops upon encountering the first non-printable
     character.
   * Fix for the "search -k" option on X86 kernels whose first memmap page
     structure does not map to physical address 0.  Without the patch, the
     identity-mapped region of the first memory node would not be searched.
   * Fix for the "search -k" option in the highly unlikely case of kernels that
     have multiple NUMA nodes that are not sequential with respect to their
     node IDs and the physical memory they reference, have physical memory
     holes between any of the nodes, and do not have memmap page structures
     referencing the non-existent inter-node physical memory.  In that event,
     it is conceivable that a NUMA node would be skipped.
   * If the "kmem <address>" argument is a virtual address inside a kernel
     module, the first item displayed is the address, followed by its symbol
     type, and its symbol-name-plus-offset string.  This patch appends the
     module name in brackets, similar to what is displayed if "sym <address>"
     is entered.
   * Fix for "kmem -s <address>" in kernels configured with CONFIG_SLUB and
     CONFIG_PAGEFLAGS_EXTENDED if the address is contained in a page other than
     the first page in a compound, multi-page, slab.  Without the patch, the
     command would fail with the message "kmem: address is not allocated in
     slab subsystem: <address>".
   * Created a new "rd -N" option that displays 16- and 32-bit data in network
     byte order, performing byte-swapping if appropriate.
   * Fix for a compiler warning when building with "make warn".  Without the
     patch, memory.c generates a message indicating "kernel.c: In function
     ‘back_trace’:" followed by 17 messages indicating "kernel.c: 2187:
     warning: ‘btsave.<member>’ may be used uninitialized in this function",
     where there is one message for each <member> of the bt_info structure.
   * Updated the #define of NR_SECTION_ROOTS to match its change upstream that
     prevents its value from being calculated to be zero.
   * Fix for a double-free() in the unlikely event of a readmem() failure in
     the ARM architecture's read_module_unwind_table() function.
   * Updates to support CONFIG_SPARSEMEM for the ARM architecture.
   * Extended the "mach" command to display the size and address of each
     per-cpu IRQ stack and per-cpu exception stack, if they exist.  This
     extension is applicable to the x86_64 and ppc64 architectures, and the x86
     architecture if applicable.  Prior to this patch, the values were only
     accessible via "help -t" or "help -m".
   * Created a new "kmem -o" option that dumps each cpu's offset value that is
     added to per-cpu symbol values to translate them into kernel virtual
     addresses.  Prior to this patch, the values were only accessible via "help
     -k".
   * Removed the "kmem [-[l|L][a|i]]" options from being advertised by the
     "kmem" help page; the options have been obsolete since the Linux version
     2.2 timeframe.
   * Fix to support Linux 3.x version number change.  Without the patch, the
     crash session fails with kernel version 3.0 and later, displaying the
     message "WARNING: kernel version inconsistency between vmlinux and [live
     memory or dumpfile]", followed by the fatal error message "crash:
     incompatible arguments: vmlinux is not SMP -- [live system or dumpfile] is
     SMP".
   * Updates to the sial.c extension module to support the Linux 3.x version
     number change.
   * Created a new "kmem -g [flags]" option that displays the enumerator value
     of bits in the page structure's "flags" field.  With no "flags" argument,
     the enumerator value of all bits are displayed; when a hexadecimal "flags"
     option is added, just the bits in the value are translated.  This option
     only works with 2.6.26 and later kernels, which contain the "enum
     pageflags".
 .
 crash (5.1.5-1) unstable; urgency=low
 .
   * New upstream version 5.1.5 (see
     http://people.redhat.com/anderson/crash.changelog)
   * Fix to allow a vmlinux.bz2 file to be accepted when it is part of a
     relative or absolute pathname.  Without the patch, the file is rejected
     with the message "crash: <path-to>/vmlinux.bz2: not a supported file
     format", although it is still possible to use it with the "-f" flag.
   * Fix for the usage of a vmlinux.gz or vmlinux.bz2 file if the relevant
     gunzip or bunzip2 file is not located in /usr/bin.  Without the patch on
     an Ubunutu system, the uncompression fails because those binaries are only
     located in the /bin directory.  Also fixed the uncompression error message
     to differentiate between gunzip and bunzip2.
   * Created a new exist_regs_in_elf_notes() function for extension modules to
     pre-determine whether an ELF note containing registers exists for a
     specified task.  The function is also used by the currently-existing
     get_regs_from_elf_notes() function to clean up redundant code in the
     various get_<arch>_regs_from_elf_notes() functions that it calls.
   * Exported the formerly static x86_64_exception_frame() function to
     extension modules, and created a new EFRAME_INIT flags argument that
     directs the function to fill in the x86_64 pt_regs offset table and return
     any errors encountered in doing so.
   * Created and exported a new get_kvm_register_set() interface for extension
     modules to get a copy of the per-cpu registers stored in the kvmdump
     header.
   * Fix for the handling of x86_64 compressed kdump dumpfiles where the
     crashing system contained more than 454 cpus.  Without the patch, the
     crash session fails during initialization with the error message "crash:
     compressed kdump: invalid nr_cpus value: <cpus>" followed by "crash:
     vmcore: not a supported file format".
   * Fix for the "uvtop" and "vm -p" commands when run on tasks that have
     performed an mprotect(PROT_NONE) on a user-space page.  Because the
     PAGE_PRESENT bit is not set in that case, the page was presumed to be
     swapped out.  Without the patch the "vtop <address>" command fails with
     the error message "vtop: cannot determine swap location", and "vm -p"
     indicates "SWAP: (unknown swap location)" when iterating over the page.
   * Fix for the use of the "-g vmlinux" command line option by non-root users
     if the /dev/crash module has been preloaded.  Without the patch, after the
     vmlinux file's debugging information has been shown, the error messages
     "ERROR: Removing 'crash': Operation not permitted" and "NOTE:
     cleanup_memory_driver failed" are displayed.
   * Fix for the s390x "bt" command to handle a program check interrupt while
     operating on the process stack.  Without the patch, the backtrace stops
     prematurely upon reaching the pgm_check_handler() interrupt handler.
   * Long overdue rewrite of the crash.8 man page and the associated "crash -h"
     built-in usage display.  The crash.8 man page clarifies the required
     invocation options, adds all of the rarely-used command line options that
     have proliferated over the years, and updates the ENVIRONMENT variables
     section.  The "crash -h" output closely mimics the relevant parts of the
     crash.8 man page.
   * Fix for the embedded gdb module to determine member offsets of the
     pglist_data structure when the kernel was compiled with gcc 4.6.0.
     Without the patch, the system MEMORY size shown by the initial system data
     and by the "sys" command is nonsensical, the "kmem -n" command shows
     faulty memory node data, and if the kernel is configure with CONFIG_SLUB,
     "kmem -[sS]" will fail with numerous "kmem: page_to_nid: cannot determine
     node for pages: <page-address>" errors.  There may be other ramifications
     given that the pglist_data structure is crucial to the functionality of
     the crash utility.
   * Implemented the capability of using the NT_PRSTATUS ELF note data that is
     saved in version 4 compressed kdump headers to determine the starting
     stack and instruction pointer hooks for x86 and x86_64 backtraces when
     they cannot be determined in the traditional manners.
   * Added a new "--osrelease <dumpfile>" command line option that displays the
     OSRELEASE vmcoreinfo string from a kdump dumpfile.
   * Fix to recognize the per-cpu symbol name change from "cpu_info" to
     "ia64_cpu_info" in 2.6.33 and later ia64 kernels.  Without the patch, the
     message "WARNING: cannot find cpuinfo_ia64 location" would appear during
     invocation, and the "mach -c" command would fail in a similar manner,
     indicating "mach: cannot find cpuinfo_ia64 location".
   * Fix for "kmem -[sS]" command on 2.6.39 kernels where the original slab
     structure members have been moved into an anonymous union.  Without the
     patch, either command fails immediately with the error message "kmem:
     invalid structure member offset: slab_list".
 .
 crash (5.1.4-1) unstable; urgency=low
 .
   * New upstream version 5.1.4 (see
     http://people.redhat.com/anderson/crash.changelog)
   * Fix for RT kernels in which the schedule() function has become a wrapper
     function that calls the  __schedule() function, and where other functions
     may call __schedule() directly.  Without the patch, a warning message
     indicating "crash: cannot determing thread return address" is displayed
     during invocation on x86_64 machines, and backtraces of blocked tasks may
     have missing or invalid frames.
   * Fix for running against live x86 kernels that were configured with
     CONFIG_PHYSICAL_START containing a value that is greater than its
     CONFIG_PHYSICAL_ALIGN value, and where the first symbol listed by
     /proc/kallsyms is not "_text".  Without the patch, the crash session fails
     during invocation with the error message "crash: vmlinux and /dev/mem do
     not match!" (or "/dev/crash" if applicable).  As a work- around,
     "/proc/kallsyms" can be entered on the command line, or the
     "--reloc=<size>" option could be used, but the fix obviates that
     requirement for live systems.  It should be noted that dumpfiles of
     kernels configured that way still do require that "/proc/kallsyms", or a
     copy of it, or alternatively the "--reloc=<size>" option, to be entered on
     the command line, as detailed in this changelog entry:
     http://people.redhat.com/anderson/crash.changelog.html#4_0_4_5
   * Unlike other extension modules, the "sial.so" module must be built within
     a pre-built crash source tree because it uses header files from the
     embedded gdb module.  Therefore if a crash source tree is laid down,
     entered, and "make extensions" is entered without first building the crash
     utility, the build of sial.so build spews numerous error messages.  To
     avoid that, the sial.mk file has been modified to check whether the
     embedded gdb build has been completed, and if it has not, just displays
     "sial.so: build failed: requires the crash gdb-7.0 module".
   * If an extension module does not have its own <module>.mk file, and is
     built using the extensions/Makefile, then it will be compiled with the
     -Wall flag.
   * The "trace.so" extension module has been improved to use "trace.cmd" to
     implement the "trace show" option, instead of maintaining a redundant code
     base within the module itself.  The trace-cmd command is better, mature,
     and continually maintained.  The new "trace show" option works like so:
     (1) builds trace.dat from the core file and dumps it to /tmp.  (2) execs
     "trace-cmd report" upon the trace.dat file.  (3) splices the output of
     trace-cmd to the user and unlinks the temporary file.
   * Updates to the "trace.so" extension module to extract trace_bprintk()
     formats from a kernel core dump.  It handles both the current format and a
     new format that will be pushed out after the merge window has closed for
     Linux 2.6.40.  The new format is required for the kernel debugfs to export
     the same bprintk data as well.  This means that the trace.so extension
     module will be able to extract more information than trace-cmd itself can
     on a running kernel.
   * Fix for the "gdb" command, or any command that resolves to a gdb command,
     to not strip quotation marks from the input line.  Without the patch, any
     gdb command whose arguments contain quotation marks, (e.g. "printf") would
     fail because they get incorrectly stripped from the input line.
   * Fix for the "p" command if its symbolic argument is a "char *" that points
     to a static data string containing an "%" character.  Without the patch,
     the command results in a segmentation violation.
   * Fix for the "sys -c" option to display an error message if a known
     sys_call_table entry is not a valid system call address.  Without the
     patch, the compromised system call entry is not displayed unless the crash
     debug mode is set to 1 or greater.  With the patch, the system call number
     will be followed by an error message indicating "invalid sys_call_table
     entry: <address> (<symbol-name>)".  This change is only applicable on
     architectures/kernels where the index of the sys_call_table array can be
     confirmed by debuginfo data, i.e., is not a loose calculation based upon
     the next kernel symbol.
   * Print a warning message if there is any inconsistency between the kernel
     version strings found in the vmlinux file vs. the dumpfile or live memory.
     If a System.map file is used to correct the virtual addresses found in the
     vmlinux file, the message is not displayed.
   * Fix for "kmem -v", and all other commands that search through the kernel's
     mapped virtual address list, in x86_64 kernel versions from 2.6.0 to
     2.6.11.  Those kernels contained a "vmlist" and a separate "mod_vmlist"
     list header, both of which point to list of vm_structs that described each
     contiguous block of mapped kernel memory.  2.6.12 and later x86_64 kernels
     consolidated both lists onto the "vmlist".  Without the patch, the list
     headed by "mod_vmlist" was not searched.
   * Clarify the "struct -l offset" option so that it does not imply that the
     address argument is necessarily an embedded list_head pointer.  The "-l
     offset" option essentially provides the capability of the kernel's
     container_of() macro, such that the address of an embedded data structure
     can be used to display its containing data structure.
   * Clarify the help page documentation for the "struct -l offset" option so
     that it does not imply that the address argument is necessarily an
     embedded list_head pointer.  The "-l offset" option essentially provides
     the capability of the kernel's container_of() macro, such that the address
     of an embedded data structure can be used to display its containing data
     structure.
 .
 crash (5.1.3-1) unstable; urgency=low
 .
   * Implemented support for using vmlinux files that have been compressed with
     either gzip or bzip2.  For examples:
               # crash vmlinux.gz vmcore
               # crash vmlinuz.bz2
     The uncompressed file will be temporarily stored either in /var/tmp or in
     the directory specified in a TMPDIR shell environment variable.  The
     compressed filename must at least begin with "vmlinux" so as to avoid any
     attempt to uncompress a vmcore file.  Gzip'd vmlinux files are preferable
     since the uncompress operation is less time-consuming.
   * Prevent an unnecessary warning message that was introduced in version
     5.1.0 that indicates "WARNING: cannot read .debug_frame data from
     <namelist>" when running against vmlinux executables that have a separate
     ".debug" debuginfo file, such as RHEL3 vmlinux kernels.  With the patch,
     the message is only printed if CRASHDEBUG(1).
   * Fix for the x86_64 "bt" command if the shutdown NMI is issued to a 32-bit
     task that has executed a "sysenter" instruction and the RSP still contains
     the zero value loaded from the MSR_IA32_SYSENTER_ESP register.  Without
     the patch, the backtrace issues a warning message indicating "WARNING:
     possibly bogus exception frame", and is unable to make a transition from
     the NMI exception stack.
   * Fixes for the gdb-7.0 sources to address gcc-4.6 compile failures.
     Without the patch, gcc-4.6 generates "error: variable ‘<variable>’ set but
     not used [-Werror=unused-but-set-variable]" fatal errors when the
     (default) -Werror flag is used.  Previous gcc versions considered local
     variables were simply set to some value to be "used", but that is no
     longer the case.
   * Fixes for the top-level crash sources to address gcc-4.6 compiler warnings
     or errors.  Without the patch, building with gcc-4.6 would generate
     numerous "error: variable ‘<variable>’ set but not used
     [-Werror=unused-but-set-variable]" errors or warnings, depending upon
     whether "make warn" or "make Warn" was used.
   * Removed -Wp,-D_FORTIFY_SOURCE=2 from the WARNING_OPTIONS string due to a
     memmove() oddity seen when using it in conjunction with -O2 with gcc-4.6.
   * Implemented three new options for the "search" command.  This patch adds
     the -c option to search for character strings, the -w option to search for
     unsigned hexadecimal integer values, and -h to search for unsigned
     hexadecimal short values.   The integer and short values are searched on
     integer and short alignments respectively.  The -w option is only
     meaningful on 64-bit systems, to be used in order to search both the upper
     and lower 32-bits of each 64-bit long for the 32-bit value.  Strings are
     searched across contiguous page boundaries, where the page boundaries
     being crossed are relevant to the memory type being searched, i.e., kernel
     virtual, user virtual, or physical memory.
   * Restrict the new "search -p" option to physical memory pages that have an
     mem_map page structure assigned to them.
   * Hardwire the declaration of the user_regs_struct in x86_64.c for kernels
     whose debuginfo data does not contain it.
   * Fix for compiler warnings when building makedumpfile.c and memory.c with
     "make warn" on 32-bit systems.
   * Fix to more correctly determine the KVM I/O hole size and location.  The
     I/O hole size to this point in time is either 1GB or 512MB, but its
     setting is hardwired into the Qemu code that was used to create the
     dumpfile.  The dumpfile is a "savevm" file that is designed to be used for
     guest migration, and since inter-version save/load is not supported, the
     I/O hole information does not have to encoded into the dumpfile.  Without
     the patch, the I/O hole for dumpfiles created by older Qemu version was
     not being set to 1GB, so if the KVM guest was configured with more than
     3GB of memory, the crash session would typically display numerous "read
     error" messages during session initialization.
   * Fix for the x86 "bt" command on RHEL6 kernels that contain a backport of
     upstream commit a00e817f42663941ea0aa5f85a9d1c4f8b212839, which moved x86
     irq-exit functions to a special .kprobes.text section.  Without this
     patch, "bt" would show nonsensical backtraces that begin and end with the
     "ia32_sysenter_target" function, and would dump an invalid kernel-entry
     exception frame.
   * Fix for the x86 "bt" command to fix a possible failure to backtrace a
     non-active "swapper" task.  Without the patch, the backtrace would fail
     with the error message "bt: cannot resolve stack trace".
   * Fix for the x86 "bt" command to prevent the display of a stale interrupt
     exception frame left on the stack of a non-active task.
 .
 crash (5.1.1-1) unstable; urgency=low
 .
   * New upstream version 5.1.1 (see
     http://people.redhat.com/anderson/crash.changelog)
   * Fix for the potential to miss tasks when walking the pid_hash table in
     2.6.24 and later kernels.
   * Enhancement for the ARM architecture's "bt" command  to print out the user
     space register set for tasks entering the kernel via the syscall entry
     point.
   * Rework of the handling of "set" commands that are put in .crashrc files so
     that only the following options are resolved prior to session
     initialization: silent, console, core, edit, namelist, and zero_excluded.
     All others are resolved immediately after session initialization is
     complete.  Accordingly, the use of "set -c <cpu>", "set -p", "set -a
     [task|pid]" and set [pid|task]" are now acceptable .crashrc commands.
   * The entering of "set -v" in a .crashrc file would cause an immediate
     segmentation violation.  The "set" command rework above defers the command
     until session initialization is complete.
   * The entering of "set dumpfile <filename>" in a .crashrc file would cause a
     fatal "seek" error during session initalization with most most dumpfile
     types, so the "dumpfile" option has been removed from the "set" command.
   * The execution of "alias" commands from a .crashrc file used to be
     performed immediately; that behavior has been changed so that they are
     executed immediately after session initialization is complete.
   * Enhancement of the "repeat" command to allow command aliases.
   * Fix for running "kmem -s" on a live system if an offline cpu is brought
     back online while the command is executing.  Without the patch, the online
     operation may cause a segmentation violation.
   * Change the behavior of "bt -[tT]" to allow the command options to be run
     on active tasks on live systems.  Without the patch, both command options
     would display the task data banner followed by "(active)".
   * Fix for the ARM architecuture's "irq" command when run on 2.6.36 and later
     kernels.  Without the patch, the command fails with the error message
     "irq: invalid kernel virtual address: 23  type: irq_chip typename".   The
     fix replaces the custom ARM IRQ dumping function with the
     architecture-neutral version.
   * Introduced support for using /proc/kcore as an alternative source of live
     memory to /dev/mem.  Doing so allows vmalloc memory access on 32-bit
     architectures when the underlying mapped physical memory is in highmem,
     which is not allowed by the /dev/mem driver.  It would also be usable on
     systems that are configured with CONFIG_STRICT_DEVMEM but still configured
     with CONFIG_PROC_KCORE.  To enforce the use of /proc/kcore, it may be
     entered on the command line.
   * If a live crash session attempts to use /dev/mem as a live memory source,
     and it is determined that the system is configured with
     CONFIG_STRICT_DEVMEM, /proc/kcore will automatically be tried as an
     alternative.
   * Fix to allow "/dev/crash" to be entered on the command line for live
     sessions.  Because it is used automatically if it exists, it is never
     necessary to enter it on the command line.  However, if it is used,
     without the patch, the session fails during initializaion with the error
     message "crash: /dev/crash: No such file or directory" if the crash.ko
     driver is a module (RHEL4/RHEL5), or "crash: /dev/crash: not a supported
     file format" if the driver is built into the kernel (RHEL6).
   * Fix for the ARM "bt" command to address the issue behind faulty warning
     messages that indicate "WARNING: UNWIND: unsupported personality routine".
   * Fix for the ARM "bt" command to address the issue behind faulty warning
     messages that indicate "bt: WARNING: UNWIND: cannot find index for
     <address>".
Checksums-Sha1: 
 971b2d64e57f1a8290bd2c8e1190210e08e0425a 1128 crash_5.1.6-1ubuntu1.dsc
 4498ffff1a2a78e4279880269fcdad0f82a2bfeb 24393882 crash_5.1.6.orig.tar.gz
 8eaa09386af59b06d6083836a5ea7720e090e504 37100 crash_5.1.6-1ubuntu1.diff.gz
Checksums-Sha256: 
 d403354e9b74581fa4c4179840b917409af98681f987b7f728fc2fc680c490dc 1128 crash_5.1.6-1ubuntu1.dsc
 b97b74257f12a42c0c30b08b80e9d1fc1d66a289a597c15d12da9e04b4a0b8dd 24393882 crash_5.1.6.orig.tar.gz
 86acf2bdc6cd9958c7414b1e785d607230e37f2be5014d42ff711b367464ef01 37100 crash_5.1.6-1ubuntu1.diff.gz
Files: 
 7564f034b71303d3b04da83c7cb594ad 1128 utils optional crash_5.1.6-1ubuntu1.dsc
 c3a95f08e7a4806e75dcfaf6a1d868b3 24393882 utils optional crash_5.1.6.orig.tar.gz
 3c4c3a4cf301deebb69d6d56f39b6a54 37100 utils optional crash_5.1.6-1ubuntu1.diff.gz
Original-Maintainer: Troy Heber <troyh at debian.org>

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAk37AncACgkQliSD4VZixzQ+AwCbB7W7SWiGG94q0I30aR3IDz47
PyIAn24bqUgTAVBBTsXJ+A1mig1dRsQ5
=rabw
-----END PGP SIGNATURE-----


More information about the Oneiric-changes mailing list