Change logs for crash source package in Precise

  • crash (6.1.6-1ubuntu0.12.04.1) precise-proposed; urgency=low
    
      * Merge from Debian unstable (LP: #1064475). Remaining changes:
        - debian/rules: Always build extensions and package them.
        - debian/rules: Cleanup for extensions.
      * Dropped ubuntu changes:
        - SPU extension support.
      * debian/control: Add armhf to build architectures.
    
    crash (6.1.6-1) unstable; urgency=low
    
      * New upstream version 6.1.6
    
      * Fix for a crash-6.1.5 regression that causes the "mount" command to fail
        on kernel versions prior to Linux 3.3.  Without the patch, the command
        fails with the message "mount: invalid structure member offset:
        mount_mnt_devname".
    
    crash (6.1.5-1) UNRELEASED; urgency=low
    
      * New upstream version 6.1.6
    
      * Fix for the ARM "irq" command.  Without the patch, on 2.6.34 and later
        kernels configured with CONFIG_SPARSE_IRQ, the command fails with the
        error message "irq: cannot determine number of IRQs".
    
      * Fix for a segmentation violation generated during invocation while parsing
        a makedumpfile-created "flat-format" vmcore-incomplete file.  Without the
        patch, the crash session would display the error message "crash: unable to
        seek dump file vmcore-incomplete", followed by a segmentation violation.
    
      * Fix for a segmentation violation generated by the "kmem -s" option when
        encountering a corrupted array_cache structure that contains a bogus
        "avail" count that is greater than the maximum legitimate limit value.
        Without the patch, the "kmem -s" command would print a warning message
        regarding the invalid array_cache, complete the command normally, and then
        generate a segmentation violation when freeing buffers used by the
        command.
    
      * Update to the "kmem -s" function to include the errors found in slab
        structures to the display of total errors found when the command
        completes.  Without the patch, invalid list_head pointers, bad inuse
        counters, and bad s_mem pointers were not added to the total number of
        errors found.
    
      * Fix for "crash --osrelease <dumpfile>" and "crash --log <dumpfile>" when
        run on an ARM compressed kdump with a crash binary that was built with
        "make target=ARM" on an x86 or x86_64 host.  Without the patch, if the
        compressed kdump header version is 4 or 5, "crash --osrelease" fails with
        the error message "crash: compressed kdump: cannot lseek dump vmcoreinfo"
        followed by "unknown", and "crash --log" fails with the error message
        "crash: <dumpfile>: no VMCOREINFO section".
    
      * Enhancement to the "swap" command to display the swap_info_struct address
        of each configured swap device.  The output has been changed to display
        the address in the first column, and the variable-length device name has
        been moved to the last column.
    
      * Fix for the "kmem -[sS]" options on kernels that configured with both
        CONFIG_SLUB and CONFIG_NODES_SHIFT, and that are running on hardware that
        generates NUMA nodes that contain no memory.  Without the patch, both
        command options fail immediately with the message "kmem: invalid kernel
        virtual address: 8  type: kmem_cache_node nr_partial".
    
      * Increment the PPC64 NR_CPUS maximum value from 1024 to 2048.
    
      * Strip the ".isra." and ".part." appendages to cloned text symbol names,
        which seem to have been introduced by gcc-4.6.0.  To keep them intact, a
        "--no_strip" command line option has been added.
    
      * Patch to the internal gdb_get_datatype() function to return the typecode
        and length of integer variables.
    
      * Fix for the "dev -d" option on Linux 3.6 and later kernels.  Without the
        patch the option fails with the message "dev: invalid structure member
        offset: request_queue_rq".
    
      * Export the red/black tree utility functions rb_first(), rb_parent(),
        rb_right(), rb_left(), rp_next() and rb_last().  Without the patch, they
        are statically declared and only used by the "runq" command.
    
      * Implemented a new "timer -r" option that displays the hrtimer queues,
        supporting all versions from Linux 2.6.16 to the present.
    
      * Fix for "kmem -s" on Linux 3.8 and later kernels that are configured with
        CONFIG_SLAB.  The kmem_cache.array[] length has been extended to store the
        nodelist pointers, so the original method to determine the per-cpu array
        limit can go out-of-range.  Without the patch, during session
        initialization there may be a message that indicates "crash: invalid
        kernel virtual address: <address> type: array cache limit", followed by
        "crash: unable to initialize kmem slab cache subsystem"; if those messages
        do get shown, then "kmem -s" will subsequently fail during runtime with
        the message "kmem: kmem cache slab subsystem not available".
    
      * Two Xen hypervisor fixes: (1) Fix console buffer content length
        calculation: Function displaying console buffer always assumes its content
        length equal to console buffer size.  This is not true and sometimes it
        sends garbage to the screen. This patch fixes this issue.  (2) Improve
        calculation of beginning of virtual address space: Xen changeset 26447
        (x86: re-introduce map_domain_page() et al) once again altered virtual
        address space.  The current algorithm calculating its start could not cope
        with that change.  New version establishes this value on the base of image
        start address and is more generic.
    
      * Fix for the ARM "vtop" command when run on a module address.  Without the
        patch, the command fails with error message "vtop: ambiguous address:
        <module-address>  (requires -u or -k)".
    
      * Add the "--active" command line option to the crash(8) man page and to the
        "crash [-h|--help]" output.
    
      * Add the "--buildinfo" command line option to the crash(8) man page and to
        the "crash [-h|--help]" output.
    
      * Remove the unadvertised and unnecessary "--data_debug" command line
        option, given that it is the default setting.
    
      * Remove the unadvertised and obsolete "--no_namelist_gzip" command line
        option.
    
      * Add the "-g [namelist]" command line option to the crash(8) man page and
        to the "crash [-h|--help]" output.
    
      * Remove the unadvertised and never-implemented "--shadow_page_tables"
        command line option.
    
      * Fix for the ARM "vtop" command when run on a user virtual address of the
        panic task.  Prior to Linux 3.3, the panic task's pgd gets overwritten
        with a pgd that identity-maps the whole address space, and therefore crash
        loses the capability of translating any user virtual address into its
        original physical address.
    
      * Fix to prevent the ARM linker mapping symbols "$d" and "$a" from being
        added to the list of symbols from kernel modules.  Without the patch, the
        two symbols would only be rejected from the base kernel's symbol list, but
        would be added to the symbol list of individual kernel modules.
    
      * Fix for the X86_64 "bt" command to recognize that the kernel was built
        with CONFIG_FRAME_POINTER on Linux 3.7 and later kernels that are
        configured with CONFIG_FUNCTION_TRACER.  In those kernels, the special
        4-byte NOP instruction that can be overwritten during runtime for dynamic
        ftracing has been moved to the very beginning of each function, before the
        function preamble.  Without the patch, the test that checks the function
        preamble to determine whether CONFIG_FRAME_POINTER was configured would
        fail, which could potentially lead to less reliable backtraces.
    
    crash (6.1.4-1) UNRELEASED; urgency=low
    
      * New upstream version 6.1.4
    
      * Fix for a crash-6.1.3 regression with respect to the loading of extension
        modules.  Because of the change that replaced the obsolete _init() and
        _fini() functions with constructor and destructor functions, extension
        modules may fail to load when the extension modules are built with older
        compiler/linkers.  The problem is due to the continued usage of the
        -nostartfiles compiler option regardless whether the extension module has
        replaced its _init() function with a constructor function; with older
        compiler/linkers, the module may fail to load.  The fix predetermines
        whether an extension module still uses _init() or if it has been updated
        to use a constructor function, and will use the -nostartfiles option only
        on older "legacy" modules.
    
      * Implemented a new "list -r" option that can be used with lists that are
        linked with list_head structures.  When invoked, the command will traverse
        the linked list in the reverse order by using the "prev" pointer instead
        of "next".
    
      * Fix for the "swap" command's FILENAME display.  In some kernels between
        2.6.32 and 2.6.38 the swap partition's pathname may not show the "/dev"
        filename component.
    
      * Fix for the "swap" command's PCT display, which will display a a negative
        percentage value if more than 5368709 swap pages are in use.
    
    crash (6.1.3-1) unstable; urgency=low
    
      * New upstream version 6.1.3
    
      * Implemented a new "crash --log dumpfile" option which dumps the
      kernel log buffer and exits.  A kernel namelist is not required,
      but the dumpfile must contain the VMCOREINFO data from the ELF
      header of the original /proc/vmcore file that was created by the
      kexec/kdump facility.  Accordingly, this option supports kdump ELF
      vmcores and compressed kdump vmcores created by the makedumpfile
      facility, including those that are in makedumpfile's intermediary
      "vmcore.flat" format.
    
      * Fixes for the ppc64.c file to handle gcc-4.7.2 compiler warnings when
      building crash with "make warn", or compiler failures when building
      with "make Warn" on a PPC64 machine.  Without the patch, gcc-4.7.2
      generates three "error: variable ‘<variable>’ set but not used
      [-Werror=unused-but-set-variable]" messages.
    
      * Update the PPC64 architecure's internal storage of the kernel's
      MAX_PHYSMEM_BITS value for Linux 3.7 and later kernels, which changed
      from 44 to 46 to for 64TB support.  Without the patch, there is no
      known issue, but the stored value should be correct.
    
      * Fix for the "mount" command's header display to indicate "MOUNT"
      instead of "VFSMOUNT" on Linux 3.3 and later kernels because the
      the first column contains a mount structure address instead of a
      vfsmount structure address.  For those later kernels, it is
      permissable to enter either the mount structure address, or the
      address of the vfsmount structure that is embedded within it, as
      an optional argument.  The output has also been tightened up so
      that the DIRNAME field is not shifted to the right based upon the
      DEVNAME field length.
    
      * Fix for the "mount <superblock>" search option on 2.6.32 and later
      kernels.  Without the patch, it is possible that multiple filesystems
      will be displayed.
    
      * Update to the "mount" help page to indicate that a dentry address
      may be used as a search option.
    
      * Fix for the "ps -l [pid|task|command]" option to display the
      specified tasks sorted with the most recently-run task (the largest
      last_run/timestamp) shown first, as is done with the "ps -l" option
      with no arguments.  Without the patch, the timestamp data gets
      displayed in the order of the "[pid|task|command]" arguments.
    
      * Added the "ps" command to the set of supported "foreach" commands,
      serving as an alternative manner of passing task-identifying
      arguments to the "ps" command.  For example, a command such as
      "foreach RU ps" can be accomplished without having to pipe normal
      "ps" output to "grep RU".  All "ps" options are supported from the
      "foreach" framework.
    
      * Fix for the "ps -G" restrictor option such that it also takes affect
      if the -p, -c, -l, -a, -r or -g options are used.  Without the
      patch, thread group filtering would only take effect when the default
      "ps" command is used without any of the options above.
    
      * Fortify the internal hq_open() function to return FALSE if it is
      already open, and have restore_sanity() and restore_ifile_sanity()
      call hq_close() unconditionally.
    
      * Added the "extend" command to the set of built-in commands that
      support minimal mode.  A new MINIMAL flag has been created for
      extension modules to set in their command_table_entry.flags field(s)
      to signal that a command supports minimal mode.  If the crash session
      has been invoked with --minimal, then the "extend" command will
      require that the module registers at least one command that has
      the MINIMAL bit set.
    
      * Prevent the "__crc_*" symbols from being added to the the ARM kernel
      symbol list.
    
      * Prevent the "PRRR" and "NMRR" absolute symbols from being added to
      the ARM kernel symbol list.  Without the patch, it allows an invalid
      set of addresses to pass the check in the in_ksymbol_range() function.
    
      * Fix for the ppc.c file to handle a gcc-4.7.2 compiler warning when
      building crash with "make warn", or compiler failures when building
      with "make Warn" on a PPC machine.  Without the patch, gcc-4.7.2
      generates the message "error: variable ‘dm’ set but not used
      [-Werror=unused-but-set-variable]".
    
      * Workaround for the "crash --osrelease dumpfile" option to be able
      to work with malformed ARM compressed kdump headers.  ARM compressed
      kdumps that indicate header version 3 may contain a malformed
      kdump_sub_header structure with offset_vmcoreinfo and size_vmcoreinfo
      fields offset by 4 bytes, and the actual vmcoreinfo data is not
      preceded by its ELF note header and its "VMCOREINFO" string.  This
      workaround finds the vmcoreinfo data and patches the stored header's
      offset_vmcoreinfo and size_vmcoreinfo values.  Without the patch, the
      "--osrelease dumpfile" command line option fails with the message
      "crash: compressed kdump: cannot lseek dump vmcoreinfo", followed by
      "unknown".
    
      * Fix for the "help -n" option on 32-bit compressed kdumps.  Without
      the patch, the offset_vmcoreinfo, offset_eraseinfo, and offset_note
      fields of the kdump_sub_header have their upper 32-bits clipped off
      when displayed.  However, it should be harmless since the offset
      values point into the first few pages of the dumpfile.
    
      * Update of the extensions/echo.c extension module example, and the
      "extend" help page, to utilize a constructor function to call the
      register_extension() function.  The _init() and _fini() functions
      have been designated as obsolete for usage by dlopen() and dlclose().
      The echo.c example module has been modified to contain echo_init()
      and echo_fini() functions marked as __attribute__((constructor)) and
      __attribute__((destructor)) respectively.
    
      * Updated extensions/dminfo.c, extensions/snap.c and extensions/trace.c
      to replace their _init() and _fini() functions with constructor and
      destructor functions.
    
      * Fix for the "bt" command on the PPC64 architecture when running
      on Linux 3.7 kernel threads.  Without the patch, some kernel threads
      may fail to terminate on the final ".ret_from_kernel_thread" frame,
      repeating that frame endlessly, because the stack linkage pointer
      points back to itself instead of being NULL.
    
    crash (6.1.2-1) UNRELEASED; urgency=low
    
      * New upstream version 6.1.2
    
      * Enhancement of the "task" command to display both the task_struct and the
        thread_info structures of a task.  The -R option accepts members of
        either/both structure types.
    
      * Fix for the X86_64 "search" and "rd" commands due to this commit:
        http://git.kernel.org/linus/027ef6c87853b0a9df53175063028edb4950d476 Upon
        any attempt to read a page within the RAM region reserved for AMD GART on
        a live system, the Linux 3.7rc1 commit above causes causes /dev/mem,
        /proc/kcore and the /dev/crash drivers to spin forever, leading to a
        kernel soft lockup.  The RAM pages reserved for GART consist of 2MB large
        pages whose _PAGE_PRESENT bits are turned off.  Prior to the above commit,
        a read() attempt on GART RAM would cause an unresolvable page fault, and
        would harmlessly return an EFAULT.  The commit above has changed
        pmd_large() function such that it now returns TRUE if only _PAGE_PSE bit
        is set in the PTE, whereas before it required both _PAGE_PSE and
        _PAGE_PRESENT.  So instead of just failing the read() system call with an
        EFAULT, the page fault handling code now considers it a spurious TLB
        fault, and the instruction is retried indefinitely.  The crash utility
        patch stores the GART physical memory range, and disallows any attempts to
        read from it.
    
      * If an EPPIC_GIT_URL environment variable is defined, then the URL that it
        points to is used as an alternative to the code.google.com git source
        repository for the eppic.so extension module.  However, the alternative
        site is only accessed if code.google.com can first be pinged; this patch
        removes that restriction.
    
      * Fix for the "files" command PATH display on kernels configured with
        CONFIG_DEVTMPFS, when the vfsmount pointer in an file structure's "f_path"
        member does not point to the root vfsmount required for reconstructing the
        full file pathname.  Without the patch, open files in /dev directory may
        be truncated and not show the "/dev" filename component.
    
      * Enhancement to the "kmem -v" option on 2.6.28 and later kernels that
        utilize the "vmap_area_list" list of mapped kernel virtual memory regions,
        replacing the usage of the to-be-obsoleted "vmlist" list.  In those
        kernels, the output of the command will also show each vmap_area structure
        address, in addition to its vm_struct address, memory range, and size.
    
      * Update to the exported do_rbtree() and do_rdtree() functions such that
        they will return the number of items found in the targeted tree, similar
        in nature to the do_list() function.  The two functions have also been
        fixed such that the VERBOSE flag is actually recognized, so that external
        callers are able to gather the entries in a tree without having them
        displayed.  The calls to either function may be enclosed with hq_open()
        and hq_close() so the that tree entries may be subsequently gathered by
        retrieve_list() into a supplied buffer, as well as to recognize a
        corrupted list with duplicate entries.
    
      * Fix for the "extend -u" option to prevent the usage of a member of a
        free()'d extension_table structure.  No command failure occurs, but rather
        an inadvertent coding error.
    
      * Fix to allow error() to be called during an open_tmpfile() sequence prior
        to close_tmpfile() being called.  There are no crash functions that call
        error() during an open_tmpfile() sequence, but there's no reason why it
        cannot be done.  Without the patch, the error message gets displayed on
        stdout (as expected), but the error message will also overwrite/corrupt
        the tmpfile() data while it is being parsed.
    
      * Fix to properly determine whether X86_64 kernels were configured with
        CONFIG_FRAME_POINTER, due to this ftrace-related commit:
        http://git.kernel.org/linus/d57c5d51a30152f3175d2344cb6395f08bf8ee0c
        Without the patch, the crash utility fails to determine whether the kernel
        was built with CONFIG_FRAME_POINTER, and therefore the "bt" command cannot
        take advantage of it for more reliable backtraces.
    
      * Fix to properly determine whether 2.6.31 and earlier X86_64 kernels were
        configured with CONFIG_FRAME_POINTER.  Without the patch, the crash
        utility may fail to determine whether the kernel was built with
        CONFIG_FRAME_POINTER.  In those kernel versions -- which may be dependent
        upon the compiler version used -- one of the sample functions tested may
        have their "push %rbp, mov %rsp,%rbp" function preamble separated by other
        instruction(s), resulting in a false negative that precludes the "bt"
        command from taking advantage of framepointers.
    
      * Fix for the file and line-number string that is displayed by the "sym
        <kernel-text>" option.  Without the patch, the "/usr/src/" part of the
        string is stripped, and the filename string itself could have two
        corrupted characters in the pathname, for example, showing
        "k3.nel-3.6.fc17" instead of "kernel-3.6.fc17".  This is dependent upon
        the compiler version, or perhaps the string library that is linked into
        the crash binary, because it only has been seen on crash binaries built
        with gcc-4.7.  The fix now displays the full pathname, no longer dropping
        the "/usr/src" from beginning.
    
      * Restricted the X86_64 "line_number_hook" to kernels earlier than 2.6.24,
        i.e., kernels prior to the x86/x86_64 merge.  Without the patch, the
        manufactured filename information for assembly-language files was
        incorrect for 2.6.24 and later kernels.  Also, the kernel debuginfo data
        now has file/line-number data for assembly-language files as well,
        obviating the need for the hook.
    
      * Fix for the extensions/trace.c extension module to prevent a double free
        exception that would occur if a calloc() call fails during module
        initialization.
    
      * Fix for the "p -u" option if a 32-bit kernel symbol is incorrectly passed
        as an argument.  Without the patch, the command fails, but the next
        command requiring the services of the embedded gdb module will generate an
        error message of the sort "*** glibc detected *** crash: free(): invalid
        pointer: <address> ***", or "*** glibc detected *** crash: munmap_chunk():
        invalid pointer: <address> ***", followed by a backtrace, and an abort of
        the crash session.
    
      * Fix for the embedded gdb module to correctly handle kernel modules whose
        ELF header contains "__ksymtab" and "__ksymtab_gpl" sections with non-zero
        nonsensical "Address" values.
    
      * Without the patch, if one of the odd sections above is encountered, the
        "Offset" values of the remaining sections are not processed; and if the
        module's .data section is ignored, gdb incorrectly calculates the address
        of all symbols in the module's .data section, leading to incorrect output
        if, for example, data is printed with the gdb "p" command.  This invalid
        ELF section format was introduced in Linux 3.0 by the kernel's
        "scripts/module-common.lds" file.
    
      * Fix for the "runq -g" option if the kernel contains more than 200 task
        groups.  Without the patch, the command generates a segmentation
        violation.
    
    crash (6.1.1-1) UNRELEASED; urgency=low
    
      * New upstream version 6.1.1
    
      * Fixes for the ARM "vtop" command display of kernel unity-mapped virtual
        addresses.  Without the patch, the PGD, PMD values may be incorrect, and
        the PAGE value is always incorrectly calculated.
    
      * Fix for Linux 2.6.34 and later kernels that are configured with
        CONFIG_SLUB, but not configured with CONFIG_IKCONFIG, to be able to
        determine the kernel's CONFIG_NR_CPUS value.  Without the patch, if the
        actual number of cpus is larger than the crash utility's per-architecture
        NR_CPUS maximum value, then the cpus beyond the NR_CPUS limit would not be
        accounted for.
    
      * Increment the X86_64 NR_CPUS maximum value from 4096 to 5120.
    
      * Try to determine whether the kernel is running as a virtual machine by
        using any available kernel-specific data or by dumpfile type.  The results
        of the hypervisor type search will be stored in the internal kernel_table
        data structure, and if a hypervisor type can be determined, its name will
        be displayed by the "mach" command.  The result of the hypervisor
        determination, successful or otherwise, may be viewed during session
        initialization if the -d<number> command line option is invoked, or during
        runtime via the "help -k" option.  Only applicable to the X86, X86_64 and
        IA64 architectures.
    
      * Allow the "ps command" and "foreach name" command options to contain more
        than the kernel's maximum of 15 characters that are stored in each task's
        task_struct.comm[] array.  Without the patch, the two string arguments
        were required to be the possibly-truncated command name string in order to
        match.
    
      * Enhancement to the "ps" command to allow any of the "command" 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.
    
      * Add support for 2GB pages in the S390X virtual-to-physical address
        translation function.  Required for the new IBM zEC12 Mainframe.
    
      * Initial preparation for support of the ARM64 architecture.
    
      * Fix for the "log" command if a kernel message contains either a '\n' or a
        '\t'.  Without the patch, the two characters are replaced with a '.', and
        the message continues.  With the patch applied, the characters are
        printed, and if it is a '\n', spaces are inserted after the linefeed so
        that the subsequent characters in the message line up appropriately under
        the preceding line.
    
      * Fix for the "kmem -[sS]" options on kernels that configured with both
        CONFIG_SLUB and CONFIG_NODES_SHIFT, and that are running on hardware that
        generates NUMA node ids that are not numbered consecutively.  Without the
        patch, both command options fail with the error message "kmem: invalid
        kernel virtual address: 8  type: kmem_cache_node nr_partial".
    
      * Fix for the "trace.so" extension module's "trace show" command.  Without
        the patch, the output showing each trace point is shown with two
        hexadecimal virtual addresses instead of displaying them symbolically
        using the format "<function> <-- <function>".
    
      * Fixes for handling incomplete/invalid ELF or compressed kdump vmcores
        whose per-cpu NT_PRSTATUS notes are missing.  For example, this has been
        seen to happen when kexec/kdump incorrectly recognizes a Xen DomU kernel
        as a Xen Dom0 kernel.  Without the patch, possible ramifications would be
        a NULL pointer dereference during session intialization when searching for
        the panic task, or during the "bt" command on an active task.
    
      * Implemented a new "runq -g" option that displays CFS runqueue tasks
        hierarchically by task_group.  Tasks in throttled groups are also
        displayed.  The "runq" command with no option will no longer display
        task_group data for the RT queue.
    
      * Patchset for Xen support up to version 4.2:
    
      * Fix for the S390X virtual-to-physical address translation to allow the HW
        Change-bit override bit (0x100) to be used in page table entries.
    
      * Fix for a rarely-seen circumstance in which a kdump ELF vmcore of a Xen
        dom0 kernel gets incorrectly identified as a old-style netdump ELF vmcore.
        This has only been seen after the original kdump ELF vmcore was
        transformed via "makedumpfile -d1".  Without the patch, the crash session
        fails during initialization with the messages "crash: invalid size
        request: 0  type: xen kdump p2m mfn page", followed by "crash: cannot read
        xen kdump p2m mfn page".  If run against the Xen hypervisor, the session
        fails during initialization with the error message "crash: read error:
        kernel virtual address: <address>  type: crashing_cpu".
    
    crash (6.1.0-1ubuntu2) raring; urgency=low
    
      * Make crash depend on binutils. (LP: #251288)
        Crash uses the program strings to match vmlinux and cores.
    
    crash (6.1.0-1ubuntu1) raring; urgency=low
    
      * Merge from Debian unstable (LP: #1064475). Remaining changes:
        - debian/patches/01_spu_commands.patch
          + Provides SPU extension support
          + Enable SPU extension only on PPC (using .mk logic)
        - debian/rules:
          + Always build extensions and package them.
          + Cleanup for extensions
    
    crash (6.1.0-1) unstable; urgency=low
    
      * 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 results.
    
      * 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 format.
    
      * 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:
        https://lkml.org/lkml/2012/8/28/357 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 available".
    
      * 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 top-level
        directory.
    
      * 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"
        ncement of the "task" command to display both the task_struct and the
        thread_info structures of a task.  The -R option accepts members of
        either/both structure types.
      * 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 (6.0.9-1) UNRELEASED; urgency=low
    
      * Fix for building on host machines that have glibc-2.15.90 installed, in
        which case the glibc header file /usr/include/bits/siginfo.h no longer
        declares a "struct siginfo", but only the "siginfo_t" typedef.  Without
        the patch, the build of the embedded gdb module fails with the error
        message "linux-nat.h:63:18: error: field 'siginfo' has incomplete type".
    
      * Add support for reading compressed kdump dumpfiles that were compressed by
        the snappy compressor.  This feature is disabled by default.  To enable
        this feature, build the crash utility in the following manner: (1) Install
        the snappy libraries by using the host system's package manager or by
        directly downloading libraries from author's website.  The packages
        required are: - snappy - snappy-devel The author's website is:
        http://code.google.com/p/snappy (2) Create a CFLAGS.extra file and an
        LDFLAGS.extra file in top-level crash sources directory: - enter -DSNAPPY
        in the CFLAGS.extra file - enter -lsnappy in the LDFLAGS.extra file.  (3)
        Build crash with "make" as always.
    
      * Prevent the "ptov" command from returning an invalid virtual address on
        32-bit architectures.  Without the patch, the command may result in an
        invalid virtual address if the physical address entered cannot be accessed
        by a unity-mapped kernel virtual address.  The patch verifies that the
        calculated virtual address can be translated back into the supplied
        physical address.
    
      * Fix to automatically try /proc/kcore as an alternative live memory source
        when the /dev/crash driver does not exist and /dev/mem is unusable because
        the kernel was configured with CONFIG_STRICT_DEVMEM.  Without the patch,
        the automatic switch from /dev/mem to /proc/kcore is only attempted on the
        X86 and X86_64 architectures.
    
      * Added missing linefeeds to several error messages in makedumpfile.c.
    
      * Fix for a regression introduced by a crash-5.1.1 patch that reworked the
        handling of "set" commands that are put in .crashrc files, such that only
        certain command options would get resolved before the crash session is
        initialized.  Without this patch, the "--less", "--more", "--no_scroll"
        and "--CRASHPAGER" crash command line options do not properly override
        conflicting "set scroll <option>" entries that are put in a .crashrc file.
    
      * Added new "--hex" and "--dec" crash command line options, which will set
        the command output format to hexadecimal or decimal.  These two command
        line options will override any "set radix [10|16]" settings in a .crashrc
        file; since decimal is the default, the "--dec" option would only be
        necessary to override a "set radix 16" setting in a .crashrc file.
    
      * Fix for the "runq" and "timer" commands when running against 2.6.34 and
        later kernels that are not configured with CONFIG_SMP.  Without the patch,
        the "runq" command fails with the error message "runq: per-cpu runqueues
        does not exist", and the "timer" command fails with the error message
        "timer: zero-size memory allocation! (called from <address>)".
    
      * If code.google.com is not available from the host build machine, then
        "make extensions" will be delayed by a 10 minute timeout of the "git
        clone" command that downloads the EPPIC library and extension module
        source tree.  The patch pings code.google.com first in order to determine
        its availability before attempting the download.
    
      * For kernel versions 3.5 and later, in which the kernel log buffer has been
        converted from a byte-buffer to a variable-length record buffer, the "log
        -m" option will display the level in hexadecimal, and depending upon the
        kernel version, the value also contains either the facility or flags bits.
    
      * Fix for accessing the per-cpu registers from ARM vmcores generated by
        recent kernels in which the per-cpu data region has been moved into mapped
        kernel virtual address space.  Without the patch, an incorrect physical
        address is calculated, resulting in bogus register contents.
    
      * Check that an s390x dumpfile is a "live dump" earlier during session
        initialization so that the internal LIVE_DUMP flag will get set when
        "crash --minimal" is invoked.
    
      * Removed the usage of C++ keywords in structure and structure member names
        declared in "defs.h" so that extension modules written in C++ will compile
        successfully.  Accordingly, the "struct namespace" is renamed to "struct
        symbol_namespace", the struct symbol_table_data's "namespace" member is
        renamed to "kernel_namespace", and the struct gnu_request's "typename"
        member is renamed to "type_name".
    
      * Fix for the date displayed by the initial system banner and by the "sys"
        command for Linux version 3.6 and later.  Without the patch, the date
        displayed will be that of the UNIX epoch, i.e., midnight, Jan 1, 1970 UTC,
        adjusted to local time.
    
      * When the eppic.so extension module is built by "make extensions", the
        EPPIC source tree is downloaded from its upstream source repository at
        https://code.google.com/p/eppic.  However, if an EPPIC_GIT_URL environment
        variable is defined, then the URL that it points to will be used as an
        alternative git source repository.
    
      * Fix for a segmentation violation generated by the "struct" command when
        printing a structure member using the "struct_name.member" argument
        format, where the member is a "char *" that points to a string that
        contains a "%" character.
    
      * Patchset to support the most recent Xen hypervisor and Xen pvops kernels:
        (1) Always calculate max_cpus value (2) Read only crash notes for onlined
        CPUs (3) Read variables from dynamically allocated per_cpu data (4) Get
        idle data from alternative source (5) Read data correctly from dynamically
        allocated console ring (6) Add support for 3 level P2M tree
    
      * Fix for building a 32-bit eppic.so extension module after having built
        crash with "make target=ARM" or "make target=X86" on an x86_64 host.
        Without the patch, the eppic.so extension module would be built as a
        64-bit binary.
    
      * For the ARM architecture, fix the determination of the kernel modules base
        address when modules are not installed, and update the "mach" command to
        display the "KERNEL MODULES BASE" address.
    
      * Fix for the "kmem -[sS]" commands for Linux version 3.6 and later kernels
        configured with CONFIG_SLUB.  Without the patch, the commands fail with
        the error message "kmem: invalid structure member offset:
        kmem_cache_objsize".
    
      * Fix for an invocation failure when running against Linux version 3.6 and
        later kernels that are configured with CONFIG_SLAB.  Without the patch,
        the crash session fails during initialization with the error message
        "crash: invalid structure member offset: kmem_cache_s_next".
    
      * Fix for the "kmem -[sS]" commands on kernels that are configured with
        CONFIG_SLUB to prevent a silent hang if a per-node slab cache partial list
        recurses back onto itself.  Without the patch, it was necessary to kill
        the command; with the patch an error message is displayed and the command
        continues on to the next kmem slab cache.
    
      * Fix for the "kmem -[sS]" and "kmem -s list" options on dumpfiles from
        kernels that are configured with CONFIG_SLUB which have been filtered by
        the makedumpfile facility.  Without the patch, it is possible that those
        commands may generate the error message "kmem: page excluded: kernel
        virtual address: <address>  type: kmem_cache buffer", and would require
        either the "--zero_excluded" command line option or having to execute "set
        zero_excluded on" during runtime in order to complete successfully.
    
    crash (6.0.8-1) UNRELEASED; urgency=low
    
      * Introduction of a new "tree" command that can be used to dump the the
        addresses of all data structure entries in a red-black tree or a radix
        tree.  Similar in nature to the "list" command, each data structure in a
        tree can be dumped in total, or one or more members in each strucure may
        be dumped.
    
      * If a compressed kdump header contains an invalid "nr_cpus" value, allow
        the crash session to continue after printing a warning message.  Without
        the patch, on non-S390/S390X systems, an invalid nr_cpus value generates a
        message such as "crash: compressed kdump: invalid nr_cpus value: 0", and
        the session subsequently fails with the message "crash: vmcore: not a
        supported file format".  However, compressed kdumps have been seen that
        have an nr_cpus value of 0, but the session can still run normally.  The
        patch changes the message to "WARNING: compressed kdump: invalid nr_cpus
        value: 0", and the session is allowed to continue.
    
      * Clarify the "help -n" output for compressed kdumps to show the offsets and
        sizes of the vmcoreinfo, notes, and eraseinfo sections  in both
        hexadecimal and decimal, and to cleanly handle compressed kdumps that have
        no NR_PRSTATUS notes in the notes section.
    
      * Fix for the X86 "bt" command for a possible situation where the crashing
        cpu's back trace starts at the "sysrq_handle_crash" stack frame instead of
        farther down the stack below the exception at the "crash_kexec" stack
        frame.
    
      * Fix for the "runq" command for kernels that have the CFS scheduler.
        Without the patch, tasks queued on a priority array of a cpu's RT runqueue
        may not be displayed.
    
      * Fix for analyzing dumpfiles from kernel version 3.5 and later, in which
        the kernel log buffer has been converted from a byte-buffer to a
        variable-length record buffer.  Without the patch, the crash session fails
        during initialization with the error message "crash: cannot determine
        length of symbol: log_end".  If the session is run on a live system, or if
        the session is invoked with the "-s" command line option, the session is
        not killed, but in those cases the "sys" and "log" commands will fail with
        the same error message.
    
      * For kernel versions 3.5 and later, in which the kernel log buffer has been
        converted from a byte-buffer to a variable-length record buffer, two new
        options have been added.  The "log -t" option will display log messages
        without the timestamp prepended.  The "log -d" option will display the
        dictionary of key/value pair properties that the kernel's dev_printk()
        function optionally appends to a message.
    
      * The SIAL extension module has been replaced by the "eppic" facility, which
        stands for "Embeddable Pre-Processor and Interpreter for C".  The eppic
        git tree is located at http://code.google.com/p/eppic.  When "make
        extensions" is done, the eppic source code will be downloaded
        automatically via "git clone", and then the "eppic.so" extension module
        will be built.  The "eppic.so" extension module offers the same command
        set as the older "sial.so" module; the SIAL extension module source files
        have been completely removed.  If desired, the eppic sources can be
        updated by executing "git pull" from the "extensions/eppic" subdirectory.
    
      * Added a new "list -h" option.  When used with -h, the "start", address
        must be the address of a data structure that contains an embedded
        list_head structure.  Updated the "list" help page to more clearly
        differentiate the difference between using a "start" address alone, "-H
        start", or "-h start", and added a WARNING section to address the problem
        of "-h start" passing through an external LIST_HEAD(), or passing though
        the actual starting point of the list that is contained within a different
        type of data structure from all the entries in the list.
    
      * Implemented a new "scope" crash environment variable that can alter the
        text scope for viewing the definition of data structures.  It is useful in
        cases where the kernel defines more than one instance of of a data
        structure with the same name, and the "wrong" one is selected by default.
        The variable takes a kernel or module text symbol name or address, or an
        expression evaluating to the same.  If the variable is a module text
        address, then the command will attempt to load the module into the crash
        session if it is not already loaded; if that fails, then the setting of
        the variable will fail.
    
      * Update to the extensions/trace.c extension modue to handle a kernel
        version 3.4 patch that added a new "ring_buffer_per_cpu.nr_pages" member,
        making the trace buffer size per-cpu.
    
      * Fix to recognize a kernel version 3.5 patch that changed the "qstr.len"
        member from an unsigned integer into a member of an anonymous structure
        within an anonymous union.  Without the patch, the following commands
        fail, displaying the following error messages: mount: "mount: invalid
        structure member offset: qstr_len" files: "files: invalid structure member
        offset: qstr_len" vm: "vm: invalid structure member offset: qstr_len"
        swap: "swap: invalid structure member offset: qstr_len fuser: "files:
        invalid structure member offset: qstr_len"
    
      * The "fuser" command generates the above error because it uses the "files"
        command behind the scenes.
    
      * Fix for the function that gathers a cpu's register set from an NT_PRSTATUS
        note of an x86 or x86_64 compressed kdump header if one or more cpus were
        offline when the system crashed.  In that case, if the requested cpu
        number is equal or greater than the number of online cpus, the function
        will fail.  When that happens, that cpu's back trace will not have those
        registers as a fall-back option if the starting point cannot be determined
        otherwise.
    
      * Added "ipcs" and "tree" command references to the crash.8 man page.
    
      * Redefined the usage of the "struct -o" flag when used in conjunction with
        a symbol or address argument.  Without this patch, the behavior has been
        to print the warning message "struct: -o option not valid with an address
        argument", ignore the "-o", and to just display the structure at that
        address.  With this patch, each structure member will be proceded by its
        virtual address.
    
      * Added new "bt -s [-xd]" options that will display symbol names plus their
        offset in each frame.  The default behavior is unchanged, where only the
        symbol name is displayed.  The symbol offset will be expressed in the
        default output format, which can be overridden with the -x or -d options.
    
      * Fix for 32-bit PPC to handle a situation where one or more NT_PRSTATUS
        note(s) were not captured in the kdump header due to cpu(s) not responding
        to an IPI.  Without the patch, the "bt" command may result in a
        segmentation violation.
    
      * Fix for building the PPC64 architecture in ppc64 environments where where
        applications are built 32-bit by default when -m32 or -m64 are not
        specified.  This was a regression introduced in the crash-6.0.3 patch that
        introduced the "make target=PPC" feature that can be performed on ppc64
        hosts.  Without the patch, a "make" command would build a 32-bit PPC crash
        utility on such ppc64 hosts.
    
      * Fix for the 32-bit PPC "irq" command.  Without the patch, depending upon
        the kernel version, the command would fail with the message "irq: cannot
        determine number of IRQs", or "irq: invalid structure size: irqdesc".
    
      * Fix for the 32-bit PPC "pte" command to properly translate the PTE bit
        settings based upon the correct Book3E specifications.
    
    crash (6.0.7-1) UNRELEASED; urgency=low
    
      * Enhanced the "search" command to allow the searched-for value to be
        entered as a crash (expression) or a kernel symbol name.  The resultant
        value of an (expression) or kernel symbol value must fit into in the
        designated value size if -w or -h are used, and neither variant may be
        used with the -c option.  If found, both the resultant value and the
        argument input string will be displayed next to the target address(es).
    
      * Added a new "search -t" option that will restrict the search to the kernel
        stack pages of all tasks.  If one or more matches are found in a task's
        kernel stack, the output is preceded with a task-identifying header.
    
      * Fix for the s390x "bt -[tT]" options when run on an active task on a live
        system.  Without the patch, the options fail with the message "bt:
        invalid/stale stack pointer for this task: 0".
    
      * Fix for s390x "vm -p" option, which may show invalid user to physical
        address translation data if a page is not mapped.  Without the patch, a
        page's translation may indicate "<address>   SWAP: (unknown swap location)
        OFFSET: 0", or show an incorrect swap offset on an actual swap device.
    
      * Added new "vm -[xd]" options to be used in conjunction with "vm -[mv]",
        which override the current default output format with hexadecimal or
        decimal format for just the command instance.  Without the patch, it would
        require changing the default output format with "hex" or "dec" prior to
        executing "vm -[mv]".  The new flags may also be used with "foreach vm
        -[mv]".
    
      * Fix for the s390x "vm -p" and "vtop -u <user-address>" commands if the
        page containing the relevant PTE is not mapped.  Without the patch, the
        commands fail with the error message "vm: read error: kernel virtual
        address: 0  type: entry" or "vtop: read error: kernel virtual address: 0
        type: entry"
    
      * Fix for the s390x "vm -p" command and "vtop -u <user-address>" commands to
        properly translate pages that are swapped out into their swap file and
        offset.  Without the patch, the swap file and offset would not be
        displayed.
    
      * Added new "list -[xd]" options to be used in conjunction with "list -s",
        which override the current default output format with hexadecimal or
        decimal format for just the command instance.  Without the patch, it would
        require changing the default output format with "hex" or "dec" prior to
        executing "list -s".
    
      * Added new "net -[xd]" options to be used in conjunction with "net -S",
        which override the current default output format with hexadecimal or
        decimal format for just the command instance.  Without the patch, it would
        require changing the default output format with "hex" or "dec" prior to
        executing "net -S".  The new flags may also be used with "foreach net -S".
    
      * Added new "mach -[xd]" options to be used in conjunction with "mach -c",
        which override the current default output format with hexadecimal or
        decimal format for just the command instance.  Without the patch, it would
        require changing the default output format with "hex" or "dec" prior to
        executing "mach -c".
    
      * If the value read from the cpu online, present, or possible masks contains
        a cpu bit value that is outside the architecture's maximum NR_CPUS value,
        print a warning message during invocation.  Without the patch, a corrupt
        vmcore containing a bogus mask value could quietly corrupt heap memory.
    
      * Add support to for reading dumpfiles compressed by LZO using makedumpfile
        version 1.4.4 or later.  This feature is disabled by default.  To enable
        this feature, build the crash utility in the following manner: (1) Install
        the LZO libraries by using the host system's package manager or by
        directly downloading libraries from author's website.  The packages
        required are: - lzo - lzo-minilzo - lzo-devel The author's website is:
        http://www.oberhumer.com/opensource/lzo (2) Create a CFLAGS.extra file and
        an LDFLAGS.extra file in top-level crash sources directory: - enter -DLZO
        in the CFLAGS.extra file - enter -llzo2 in the LDFLAGS.extra file.  (3)
        Build crash with "make" as always.
    
      * Fix for the included "trace" extension module.  Without the patch, if the
        module initialization sequence fails, a double-free in the module may lead
        to a subsequent malloc() segmentation violation in the crash session.
    
      * Incorporated the "ipcs" extension module written by Qiao Nuohan as a
        built-in command.  The command displays the kernel's usage of the System V
        shared memory, semaphore and message queue IPC facilities.  It differs
        from the original extension module by fixing a failure scenario if the
        current task is exiting, and adds a "-n pid|task" option, which displays
        the IPCS facilities with respect to the namespace of a given pid or task.
    
      * Fix for a gdb-7.3.1 regression that causes the line number capability to
        fail with certain ranges of x86 base kernel text addresses.  Without the
        patch, the "dis -l <symbol>" or "sym <symbol>" commands would fail to show
        line number information for certain ranges of base kernel text addresses.
    
      * Added a new "printm" command to the embedded gdb module.  It is currently
        only used by the "pstruct" extension module, but can be used to dump the
        type, size, offset, bitpos and bitsize values of an expression.
    
      * Added a new "runq -t" option that displays the timestamp information of
        each cpu's runqueue, which consists of either the rq.clock, the
        rq.most_recent_timestamp or rq.timestamp_last_tick value, whichever
        applies.  Following each cpu timestamp is the last_run or timestamp value
        of the active task on that cpu, whichever applies, along with the task
        identification.
    
      * Fix for an initialization-time warning when running on a live system with
        the most recent version of the modprobe command, which no longer supports
        the -l and --type options.  The modprobe is used to detect whether the
        crash.ko memory driver is part of the distribution.  Without the patch, a
        warning message is issued that indicates "/sbin/modprobe: invalid option
        -- 'l'".  If the driver is built into the kernel, the message is harmless.
        If the driver is not built into kernel, then the crash.ko (/dev/crash)
        driver would not be selected as the live memory source.
    
    crash (6.0.6-1) unstable; urgency=low
    
      * New upstream version 6.0.6
      * Extend the supported cross-architecture build capability so that it
        applies to the SIAL extension module.  Without the patch, when building
        the SIAL module in 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.
      * Fixes for memory leaks and possible segmentation violations when unloading
        SIAL extension module scripts.
      * Fix for the new "foreach RU" task state qualifier.  Without the patch, the
        runnable tasks are not selected.
      * 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.
      * 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".
      * 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.
      * Fix for a crash-5.1.9 regression that broke the "bt -g" option.  Without
        the patch, the option is ignored completely.
      * Fix for s390x virtual-to-physical translation of virtual addresses that
        are backed by 1MB pages.
      * The s390x has a dumpfile method that creates "live dumps", where the
        kernel continues to run while the dumpfile is being created.  The initial
        system banner display and the "sys" command will inform the user that the
        dumpfile is a "[LIVE DUMP]", and the "bt -a" option will fail with the
        message "bt: -a option not supported on a live system or live dump".
      * Newly-created dumpfiles generated by the "snap.c" extension module will
        now be recognized as "live dumps".  Accordingly, the initial system banner
        display and the "sys" command will inform the user that the dumpfile is a
        "[LIVE DUMP]", and the "bt -a" option will fail with the message "bt: -a
        option not supported on a live system or live dump".
      * If "bt" alone is attempted on an active task in a "live dump", it will
        indicate "(active)", i.e., the same as if it were attempted on a live
        system.
      * If an extension module does not define the appropriate architecture, i.e.,
        "-DX86", "-DX86_64", etc., then the inclusion of "defs.h" will generate a
        compiler failure indicating "error: 'NR_CPUS' undeclared here (not in a
        function)".  In that case, the architecture will now default to that of
        the host machine.
      * Prevent a highly-unlikely incorrect calculation of the maximum cpudata
        array length of a kmem_cache during initialization of of CONFIG_SLAB
        kernels.
      * Prevent an infinite loop during the initialization of the kmem_cache
        subsystem in CONFIG_SLAB kernels if the cache list or the vmcore is
        corrupt.  If the kmem_cache list links back into itself, messages showing
        the first "duplicate" entry in the list and "crash: unable to initialize
        kmem slab cache subsystem" will be displayed.
      * Update to the "mod" command to additionally search for module object files
        in the directory containing the kernel namelist (vmlinux) file.  This will
        allow an alternate module-debuginfo directory tree to be set up like so: #
        cd <directory> # rpm2cpio kernel-debuginfo-<release>.rpm | cpio -idv
        Having done that, and by referencing the vmlinux file in that directory
        tree directly or by symbolic link, the "mod" command will search for
        module object files starting from the directory containing the vmlinux
        file if they are not found in the standard /lib/modules/<release>
        directory.
      * Update to the s390x "bt" command if a task was running in userspace.
        Without the patch, the back trace display ended at the kernel entry
        function frame; with the patch, the user space PSW register is displayed
        with a "(user space)" tag, followed by the general purpose register set.
      * In the unlikely event that the access of ARM or x86_64 kernel unwind table
        data fails during crash invocation, print a warning message and allow the
        crash session to continue.  Without the patch, the crash session would
        fail immediately.
    
    crash (6.0.5-1) unstable; urgency=low
    
      * New upstream version 6.0.5
      * 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.
      * 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
        {...}".
      * Extend the "ps -l" output to also display the task state next to its
        last_run/timestamp value.
      * 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.
      * 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.
      * 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".
      * 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".
      * 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.
      * 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.
      * 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.
      * 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.
      * 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.
      * 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".
      * Fix for a "*** stack smashing detected ***: crash terminated" failure
        during the initial system banner display on a 32-bit PPC platform.
      * Redesigned/simplified the internal read_string() function to prevent a
        potential segmentation violation.
      * 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
      * Fix for crash invocation failure on 3.3-era kernels in which the 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.
    
    crash (6.0.4-1) unstable; urgency=low
    
      * New upstream version 6.0.4
      * Fix to allow the recently-added "mod -g" and "mod -r" options to be used
        together.  Without the patch, if both options were used, the command would
        fail with a "mod: invalid option" error complaining about one or the other
        option letter.
      * 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.  Without the patch, depending upon a system's cpu
        configuration and actual cpu count, the crash session may display "crash:
        unable to initialize kmem slab cache subsystem" during invocation, or if
        it does succeed, "kmem -s" may generate a segmentation violation.
      * Document the "crash [-h|--help] all" option in the crash.8 man page and in
        the "crash [-h|--help]" output.
      * Fix the S390/S390X-specific "s390dbf" command's "hex_ascii" debug data
        printing routine to prevent the display of non-ASCII characters.
      * Fix for ARM stack unwinding on 3.2 and later kernels due to commit:
        http://git.kernel.org/linus/de66a979012dbc66b1ec0125795a3f79ee667b8a
      * Implemented a new "search -x <count>" option that displays the memory
        contents before and after any found search target.  The before and after
        memory context will consist of "count" memory items of the same size as
        the searched-for value.  This option is not applicable with the -c option.
      * 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.
      * Implementation of a platform-based vmalloc address translation scheme for
        the 32-bit PPC architecture, introducing support for the PPC44X platform
        while maintaining the current default platform.  Related to that, the PTE
        translation function used by "vtop" properly handles platforms that use
        64-bit PTEs, and the "mach" command displays the kernel's
        "powerpc_base_platform" name string.
      * Fix for the usage of native gdb commands where the command output is
        redirected to a pipe and then redirected to a file.
      * Fix to prevent a crash session that is run over a network connection that
        is killed/removed from going into 100% cpu-time loop.  The fix that went
        into crash-5.0.2 to handle the change in behavior of the built-in
        readline() library call does not suffice in cases where readline() never
        gets a chance to be called.  Accordingly, the crash session is now
        initialized with a PR_SET_PDEATHSIG prctl setting, which will cleanly kill
        itself upon its parent's death.
      * 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.  Without the patch, the crash session fails to
        initialize.
      * 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]".  This highly-unlikely event could occur if
        the kernel jumps to a bogus text location and attempts to execute it, or
        if the exception occurs in vmalloc space that was allocated with
        module_alloc() by a systemtap kprobe-handler, and therefore has no
        symbolic reference.
    
    crash (6.0.3-1) unstable; urgency=low
    
      * New upstream version 6.0.4
      * Fix to gdb-7.3.1/bfd/bfdio.c to properly zero out a complete struct stat
        with a corrected memset argument; caught when compiling with the Clang
        Static Analyzer.
      * Fix for the SIAL extension module to remove a call to sial_free() for an
        uninitialised variable that can result in a segmentation violation when
        unloading a sial script.
      * Fix for the "runq" command for kernels that are configured with
        CONFIG_FAIR_GROUP_SCHED.  Without the patch, tasks contained within the
        task-group of a cpu's currently-running task may not be displayed.
      * Implemented support for the analysis of 32-bit PPC ELF kdump vmcores.
      * Implemented the capability of building a PPC crash binary on a PPC64 host,
        which can be done by entering "make target=PPC".  After the initial build
        is complete, subsequent builds can be done by entering "make" alone.
      * Determine the PPC page size from the kdump PAGESIZE vmcoreinfo data.
      * Fix for the "kmem -[sS]", "kmem -[fF]" and "kmem <address>" options in 3.2
        kernels.  Without the patch, the commands fail with the error "kmem:
        invalid structure member offset: page_lru".
      * Addition of a set of dumpfile read diagnostic debug statements.  They are
        primarily of use when dealing with kdump invocation or runtime read
        failures (ELF kdumps or compressed kdumps), and can serve to help pinpoint
        the problem as a faulty/corrupted dumpfile vs. a crash utility bug.  Some
        statements are seen when invoking crash with "-d1", more with "-d4", and
        all of them with "-d8".  During runtime, debug statements may be seen by
        entering "set debug <level>".
      * Fix for X86 kernels that have CONFIG_X86_32, CONFIG_DISCONTIGMEM,
        CONFIG_DISCONTIGMEM_MANUAL and CONFIG_NUMA all configured.  Without the
        patch, the VM subsystem fails to initialize properly because the pgdat
        structures are allocated by the remap allocator.
      * Fix for the "vtop" command on large NUMA X86 kernels where a node's
        starting physical address is larger than 32-bits.  Without the patch, the
        page struct contents of a virtual address  may not be displayed.
        Associated with that fix, the "kmem -n" line that displays a node's
        MEM_MAP, START_PADDR and START_MAPNR values has been adjusted to more
        properly handle large physical addresses.
      * Update for the ARM architecture to recognize a recent change of its
        vmlinux section name from ".init" to ".init.text".  Without the patch, a
        warning message indicating "crash: cannot determine text init space" is
        displayed during initialization.
      * Significant speed increase of the "kmem -p" command, especially on
        large-memory systems.
      * Implemented new "irq -a" and "irq -s" options.  The "irq -a" option
        displays the cpu affinity for in-use IRQs.  The "irq -s" option displays
        per-cpu IRQ stats in a similar manner to /proc/interrupts for all cpus.
        To show a limited set of per-cpu IRQ stats, there is an associated "-c"
        option that limits the cpus shown, which can be expressed as "-c 1,3,5",
        "-c 1-3", or "-c 1,3,5-7,10".  The options are currently restricted to
        X86, X86_64, ARM, PPC64 and IA64.
      * Removal of a redundant read of the kernel's __per_cpu_offset pointers in
        the ARM architecture's arm_get_crash_notes() function.
      * Fix for an ARM architecture segmentation violation because of a stack
        overflow due to recursion in the page table translation code.  This was
        seen when analyzing a dumpfile where the page tables had been corrupted.
      * Fix for the the "FREE HIGH" tally in the X86 "kmem -i" display.  Without
        the patch, the PAGES, TOTAL and PERCENTAGE values would always show zero
        values.
      * Fix for the "kmem -n" output display for 32-bit architectures that are
        configured with CONFIG_SPARSEMEM.  Without the patch, the values under the
        CODED_MEM_MAP, MEM_MAP and PFN columns are all shifted to the left.
      * Cleanup of several SIAL extension module files to address bison 2.5 and
        gcc 4.4.3 compile-time warnings.
      * Fix for "net -[sS]" command options on the ARM architecture.  Without the
        patch, invalid data would be displayed because the calculation of the
        socket address was off by 4 bytes.
      * Fix for the ARM "bt" command to allow the core kernel unwind tables to be
        used in cases where the module unwind tables are inaccessible.
      * Implementation of a new "dev -d" option that displays disk device I/O
        statistics.  For each disk device, its major number, gendisk and
        request_queue addresses are displayed along with the total number of
        allocated I/O requests that are in-progress.  The total I/O requests are
        then split out into synchronous vs. asynchronous counts (or reads vs.
        writes in older kernels), and the number that are in-flight in the device
        driver.
      * 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.  Without the patch, the crash session fails during invocation with
        the error "crash: zero-size memory allocation!".
      * Implemented support for the analysis of 32-bit PPC compressed kdump
        vmcores.
      * Prevent the "runq" command from dumping an unending loop of tasks if the
        CFS runqueue has been corrupted.  If the output of a cpu's runqueue would
        display a duplicate task, the output will stop with the message "WARNING:
        duplicate CFS runqueue node: task <address>".
      * Repurposed/renamed the rarely-used and rarely-needed "mod -r" option to
        "mod -R".  The option is used to reinitialize the module data; all
        currently-loaded symbolic and debugging data is deleted, and the installed
        module list will be updated (live systems only).
      * Implemented a new "mod -r" option, which will pass the "-readnow" flag to
        the embedded gdb module, which will override the two-stage strategy that
        it uses for reading symbol tables from module object files.  If the crash
        session was invoked with the "--readnow" flag, then the same override will
        occur automatically.  It should be noted that doing will increase the
        virtual and resident memory set size.
      * Performance increase for the "kmem -s <address>" option on kernels
        configured with CONFIG_SLAB, most notably on kernels whose
        kmem_cache.array[NR_CPUS] array is several pages in size.
      * Require that the "<slabname>" argument to "kmem -s <slabname>" be escaped
        with a '\' character in two situations: 1, in the highly-unlikely case of
        a kmem_cache slab named "list", to prevent the ambiguity with the "kmem -s
        list" command option. 2, if the first character of the <slabname>
        actually is a '\' character.
    
    crash (6.0.2-1) unstable; urgency=low
    
      * New upstream version 6.0.2
      * Implemention of a new "arguments-input-file" feature, where an input file
        containing crash command arguments may be iteratively fed to a crash
        command.  For each line of arguments in an input file, the selected crash
        command will be executed.
      * Many thanks to Josef Bacik for proposing this feature.
      * Fix for the "runq" command for kernels configured with
        CONFIG_FAIR_GROUP_SCHED.  Without the patch, it is possible that a task
        may be listed twice in a cpu's CFS runqueue.
      * Fix for the internal parse_line() function to properly handle the case
        where the first argument in a line is a string argument that is
        encapulated with quotation marks.
      * Fix for the usage of gzip'd vmlinux file that was compressed with "gzip
        -n" or "gzip --no-name" without using "-f" on the command line.  Without
        the patch, the crash session fails with an error message that indicates
        "crash: <string-containing-garbage>: compressed file name does not start
        with vmlinux".  With the patch, if such a file is used without "-f", it
        will be accepted with a message that indicates that the original filename
        is unknown, and a suggestion that "-f" be used to prevent the message.
      * Added a new "mod -g" option that enhances the symbol display for kernel
        modules.  After loading a module's debuginfo data, the module object's
        section addresses will be shown as pseudo-symbols.
      * Fix for the "gdb" command to prevent the option handling of command lines.
        Without the patch, a gdb command string that contained a "-<character>"
        pair preceded by whitespace, would fail with the error message "gdb: gdb:
        invalid option -- <character>".
      * Fix for the panic-task determination if a dumpfile is taken on a system
        that actually has a cpu count that is equal to its per-arch NR_CPUS value.
        Without the patch, the task running on the cpu whose number is equal to
        NR_CPUS-1 would be selected.
      * Fix for the x86_64 "bt" command to handle a recursive entry into the NMI
        exception stack.  While this should normally never happen, it is possible
        if, for example, a kprope is entered into a function that gets executed
        during NMI handling, and a second NMI is received after the initial one,
        corrupting the original exception frame at the top of the NMI stack.
        Without the patch, the NMI stack backtrace and exception frame would be
        displayed repeatedly; with the patch, the backtrace and exception frame
        are followed by the warning message "NMI exception stack recursion: prior
        stack location overwritten".
      * Support dumpfiles that are created by the PPC64 Firmware Assisted Dump
        facility, also known as "fadump" or "FAD".  Without the patch, the panic
        task cannot be determined from a fadump vmcore which was subsequently
        compressed with makedumpfile, and therefore a proper backtrace of the
        panic task cannot be generated.
      * Preparation for new s390x kernels that will increase MAX_PHYSMEM_BITS from
        42 to 46.
    
    crash (6.0.1-1) unstable; urgency=low
    
      * New upstream version 6.0.1
      * Several fixes/updates for the 32-bit PPC architecture: (1) Delete
        "__func__.<number>" symbols from the symbol list.  (2) Update manner of
        determining the processor speed displayed by the initial system banner and
        the "sys" command.  (3) Use the kernel's online cpus mask for determining
        the cpu count.  (4) Enable the "bt" command to follow traces that start in
        a per-cpu IRQ stack.  (5) Fix for the "bt" command to better prevent
        runaway stack traces.  (6) Fix for the "bt" command to recognize/display
        2.6 kernel exception frames.  (7) Update "bt" command's exception frame
        register display.  (8) Implement "bt -f" option.
      * Fix for the X86 kernel module line-number capability on some kernels.  It
        is unclear why only some kernel versions exhibit this problem, but the
        newly-embedded gdb version 7.3.1 has changed behaviour such that the
        addrmap arrays of module text address blocks may contain the module text
        offset values instead of their loaded vmalloc addresses, and so without
        the patch, there is no "match" for the vmalloc address when searching for
        its line number information.  It is fixed by doing a preliminary symbol
        search before accessing the line-number access routine.
      * Fix for the X86_64 kernel module line-number capability on kernels that
        have functions preceded by the __vsyscall_fn macro, which puts the kernel
        text function in the vsyscall page that starts at virtual address
        0xffffffffff600000.  This results in a text address block that starts at a
        normal kernel text address but ends with a vsyscall address, which
        inadvertently contains the whole vmalloc address range.  Without the
        patch, line number requests for module vmalloc text addresses would be
        mistakenly issued the first text section that ended with a vsyscall
        address, but then cannot find line number information in that section.
      * Fix for the inadvertent patching of the symbols of the 32-bit Xen
        hypervisor binary.  Without the patch, during initialization the
        minimal_symbols are "patched" with their original values, so they remain
        unchanged, and the message "WARNING: kernel relocated [0MB]: patching 3434
        gdb minimal_symbol values" is displayed.
      * If the "--mod <directory-tree>" command line option, or the setting of the
        CRASH_MODULE_PATH environment variable, or the "mod -S <directory-tree>"
        point to a tree that contains only the separate debuginfo
        "<module>.ko.debug" files, then those debuginfo files will be used as the
        internal "add-symbol-file" arguments to the embedded gdb module.  Without
        the patch, it was only acceptable to point to a directory tree that
        contained the base "<module>.ko" files, and the separate debuginfo files
        were found automatically based upon the directory path to the base module
        file.  This will allow an alternate module-debuginfo directory tree to be
        set up like so: # cd <directory> # rpm2cpio kernel-debuginfo-<release>.rpm
        | cpio -idv Having done that, the <directory> may be used with the
        "--mod", command line argument, or as the CRASH_MODULE_PATH environment
        variable, or as the "mod -S <directory> argument.
      * Make the suspension of the verbose/time-consuming "sym -l" output
        immediate upon the killing of the output pipe, or the entry of the first
        CTRL-c.  Without the patch, it would typically take several seconds, or
        multiple CTRL-c entries, for the "crash>" prompt to be re-displayed.
      * Fix for the handling of piped commands if the command receiving the crash
        output is non-existent or invalid.  Without the patch, the crash command
        would wait indefinitely unless multiple CTRL-c entries were entered.
      * Fix for the s390x "bt" command's floating point register display header.
        Without the patch, the header indicates that only registers 0, 2, 4 and 6
        are printed, a relic of the s390 architecture, whereas on the s390x all
        floating point registers are displayed.
      * Fix for the error message displayed when an untrusted .gdbinit file exists
        in the current directory.  Without the patch, the error message "WARNING:
        not using untrusted file: " would be followed by garbage ASCII data
        instead of the full pathname of the .gdbinit file.
      * Fix for the "kmem -p" and "kmem -i" commands in 3.1 and later kernels
        where the page structure's "_count" member was moved into an embedded
        anonymous structure.  Without the patch, the commands fail with the error
        message "kmem: invalid structure member offset: page_count FILE: memory.c
        LINE: 4610  FUNCTION: dump_mem_map_SPARSEMEM()".
      * Allow the user to append data to the CFLAGS and LDFLAGS variables in the
        top-level Makefile.  The extra data should be put in files named
        "CFLAGS.extra" and "LDFLAGS.extra" in the top-level directory; if either
        or both files exist, the extra data within them will be appended to the
        relevant variable.  Typically the LDFLAGS.extra file will contain
        "-l<library>" strings, and the CFLAGS.extra file will contain "-D<value>"
        strings.  This will allow the crash utility to be built with optional
        libraries, and the code that references them to be encapsulated with
        associated "#ifdef <value>" sections.  The extra CFLAGS data will also be
        passed to extension modules that are built within the local
        "crash-<version>/extensions" subdirectory.
      * The LDFLAGS setting in the Makefile can no longer be modified by hand.  It
        will be automatically configured by the "configure -b" option, based upon
        the contents of the optional "LDFLAGS.extra" file.
      * Fix for the "runq" command to display the runnable tasks that are
        contained within a cgroup's task-group scheduling entity.  Without the
        patch, only scheduling entities that are individual tasks get displayed,
        and runnable tasks in task-group scheduling entities get skipped.
      * Fix for the SIAL extension module when repeatedly loading and unloading a
        sial script when a full pathname is specified for the script.  Without the
        patch, the 4th unload attempt generates a segmentation violation.
      * Fix for the SIAL extension module to register the help and usage functions
        for a command only when loading a script.
    
    crash (6.0.0-1) unstable; urgency=low
    
      * New upstream version 6.0.0
      * Depend on binutils  (close: #645124)
      * Updated the embedded gdb version to FSF gdb-7.3.1.  This change is
        required for kernels built with gcc-4.6.1, which now defaults to using
        -gdwarf-4.  When using prior versions of crash on such a vmlinux file, it
        fails immediately with the message "Dwarf Error: wrong version in
        compilation unit header (is 4, should be 2) [in module vmlinux]" followed
        by "crash: vmlinux: no debugging data available".  (<email address hidden>)
      * Incremental patch for the SADUMP dumpfile support that was introduced in
        crash-5.1.8.  The patchset fixes minor bugs, cleans up the sadump module,
        addresses the issue of gathering the first 640KB backup from a
        kdump-enabled kernel, prepares for makedumpfile's support of the SADUMP
        format, and has "bt" display the stored register set when the compressed
        kdump was generated from an SADUMP dumpfile.  (<email address hidden>)
      * Fix for the "gdb" command, or any command that resolves to a gdb command,
        to allow redirection to a pipe or file.  This addresses a regression that
        was introduced by an unrelated "gdb" command fix in crash-5.1.4 that
        prevented the stripping of quotation marks from the input line.  Without
        the patch, redirection of a "gdb" command to a pipe or file fails with the
        error message "gdb: gdb request failed:
        <original-command-line-including-redirection>".  (<email address hidden>)
      * Fix for live system analysis of 32-bit PPC kernels.  Without the patch,
        the session would fail after displaying the error message: WARNING:
        machine type mismatch: crash utility: PPC vmlinux: (unknown)
        (<email address hidden>)
      * Fix to allow vmalloc memory access on 32-bit PPC kernels.  Without the
        patch, the warning message "WARNING: cannot access vmalloc'd module
        memory" would be displayed during invocation, and kernel virtual memory
        that was vmalloc'd could not be accessed.  (<email address hidden>)
      * Fix to correctly gather task addresses from 32-bit PPC kernels.  Without
        the patch, during invocation a stream of error messages indicating "crash:
        invalid task address in pid_hash: <address>" would be displayed.
        (<email address hidden>)
      * Fix for the "bt" command in 32-bit PPC kernels.  Without the patch, the
        "bt" command would generate a segmentation violation.
        (<email address hidden>)
    
    crash (5.1.9-1) unstable; urgency=low
    
      * New upstream version 5.1.9
      * Fixed the compressed kdump panic task determination function to use the
        kernel's "crashing_cpu" symbol if it exists.  Without the patch, the
        function returned 0 because it was using diskdump-specific header
        variables that are always set to zero in compressed kdump dumpfiles; the
        panic task was then found by searching the kernel stacks of all of the
        active tasks.  (<email address hidden>)
      * Fix for the potential of false-positive warning messages during the
        initialization of s390x zdump dumpfiles that would indicate either
        "WARNING: multiple active tasks have called die and/or panic" and/or
        "WARNING: multiple active tasks have called die".
        (<email address hidden>)
      * Removal of superfluous code for gathering registers from the ELF header in
        the ARM get_netdump_regs_arm() function.  (<email address hidden>)
      * Additional fixes for the ARM architecture gdb-7.0/bfd/elf32-arm.c and
        gdb-7.0/bfd/cpu-arm.c files to handle gcc-4.6 compiler 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.  (<email address hidden>)
      * Added new "dis -[xd]" options, which override the current default output
        format with hexadecimal or decimal format for just the command instance.
        Without the patch, it would require changing the default output format
        with "hex" or "dec" prior to executing "dis".  (<email address hidden>)
      * Added new "task -[xd]" options, which override the current default output
        format with hexadecimal or decimal format for just the command instance.
        Without the patch, it would require changing the default output format
        with "hex" or "dec" prior to executing "task".  The new flags may be used
        with "foreach task" as well.  (<email address hidden>)
      * Prevent the "struct -[xd]", "union -[xd]", and "p -[xd]" commands from
        allowing both options being entered on the command line.
        (<email address hidden>)
      * Fixes to top-level crash source files filesys.c, memory.c, netdump.c,
        sadump.c, symbols.c, x86.c and lkcd_x86_trace.c to allow them to be
        compiled cleanly with gcc-4.6.  Without the patch, gcc-4.6 generates fatal
        errors indicating "error: variable ‘<variable>’ set but not used
        [-Werror=unused-but-set-variable]" when building crash with "make Warn",
        or generates similar warning messages when building with "make warn".
        This has been tested only on x86, x86_64 and ARM; the other architectures
        may still generate errors/warnings when compiling their machine-specific
        files with gcc-4.6.  (<email address hidden>)
      * Fix for the "irq" command on 2.6.39 and later kernels.  Without the patch,
        the command fails with the message "irq: invalid structure member offset:
        irq_desc_t_status".  (<email address hidden>)
      * Fix for the SIAL extension module that solves the problem of getting
        access to integer variables.  (<email address hidden>)
      * Fix for compiler warnings when building the extensions/sial.so extension
        module with recent versions of /usr/bin/ld.  Without the patch, two
        warning messages are displayed:  "/usr/bin/ld: Warning: alignment 4 of
        symbol 'sialppdebug' in /tmp/ccYSzE2s.o is smaller than 16 in
        libsial/libsial.a(sialpp.tab.o)" and "/usr/bin/ld: Warning: alignment 4 of
        symbol 'sialdebug' in /tmp/ccYSzE2s.o is smaller than 16 in
        libsial/libsial.a(sial.tab.o)".  (<email address hidden>)
      * If the stack pointer found in the register set stored in the ELF header of
        a compressed kdump dumpfile, a KVM dumpfile, or an SADUMP dumpfile is
        either NULL or cannot be accessed, the register set will be dumped after
        the error message.  Without the patch, only the error message was
        displayed.  (<email address hidden>)
      * Preparation of the top-level crash sources for more efficient updates of
        the embedded gdb version.  The changes should be invisible other than the
        fact that all top-level source files will now be compiled with the
        -DGDB_xxx flag, because the gdb-defined TYPE_CODE_xxx values that are
        exported in defs.h changed in more recent gdb versions.
        (<email address hidden>)
      * Fixes for potential segmentation violations during the panic task search
        phase of session initialization from a version 4 or later x86_64
        compressed kdump, in which the number of ELF NT_PRSTATUS notes in the
        dumpfile does not match the number of cpus running when the system
        crashed.  (<email address hidden>, <email address hidden>)
      * Created an exported set_tmpfile2() function that allows the caller to pass
        in their own FILE pointer of an open file that only exists during the
        execution of a command.  It will afford the recursive-use protection of
        open_tmpfile2() plus the automatic closure of the file if the command
        fails prior to completion or if the user forgets to close it with
        close_tmpfile2().  (<email address hidden>)
      * Created a new "rd -r <outputfile>" option that copies raw data from memory
        to an output file.  It can be invoked either of two possible manners:
         crash> rd -r <outputfile> <address> <count>
         crash> rd -r <outputfile> <address> -e <ending-address
        The <count> value is always a byte count with this option.
        (<email address hidden>, <email address hidden>)
      * Fix for the ARM "bt" command to store the correct value of the fp register
        of active tasks.  Without the patch, in rare circumstances, the output may
        show an empty backtrace.  (<email address hidden>)
      * Fix to prevent a harmless warning message when /proc/kallsyms is used as a
        mapfile argument.  Without the patch, during initialization, the message
        "crash: /proc/kallsyms: lseek: Invalid argument" is       displayed.  If a
        regular file copy of /proc/kallsyms is used, the message is not displayed.
        (<email address hidden>)
      * Fix for running against live x86 kernels that have been relocated by the
        Intel Trusted Boot or "tboot" facility.  Without the patch, a live 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 can be used, but this fix obviates that
        requirement for live systems.  (<email address hidden>)
      * Fix for the unlikely event where makedumpfile-generated s390/s390x
        compressed kdumps do not have a CPU count in the dumpfile header.  This
        can happen when older s390 dump tools are used to create a dump that do
        not write the CPU information into the s390 dump header.  Without the
        patch, the warning message "crash: compressed kdump: invalid nr_cpus: 0"
        is displayed, the dumpfile is not recognized as a compressed kdump, and
        the session fails.  Since s390/s390x have a fallback function that gets
        the CPU register information out of memory, the same warning message will
        be displayed, but the dumpfile will still be recognized as a compressed
        kdump.  (<email address hidden>)
      * Fix for the "net -s" command on 2.6.38 and later kernels.  Without the
        patch, the command fails with the error message "net: invalid structure
        member offset: inet_opt_daddr".  (<email address hidden>,
        <email address hidden>)
    
    crash (5.1.8-1) unstable; urgency=low
    
      * Added explicit build-dep for dpkg-dev (>= 1.16.1) to resolve the "set but
        unused" errors.
      * New upstream version 5.1.8
      * Fixes for gdb-7.0 ppc64/ppc-specific files to handle gcc-4.6 compiler
        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
      * Add support for the "bt" command to recognize the new s390x
        "restart_stack" used by the PSW restart interrupt in 3.0.1 and later
        kernels.
      * Enhancement to the s390x "bt" command to display the register contents of
        the pt_regs strucutre for interrupts, instead of just printing the string
        "- Interrupt -".  The pt_regs structure contains all of the current
        registers and PSW of the interrupted CPU.
      * Removed the "files -l" option, which does not support 2.6 or later
        kernels, and because it requires structure offset data that can only be
        determined if the "lockd" and "nfsd" modules have been built into the
        kernel.  Given the kernel module dependencies, the command is more
        suitable as an extension module, if anyone cares to carry on its legacy.
      * Fix for the "ps" command to disallow the mutually-exclusive "-u" and "-k"
        options from being entered together.  Without the patch, whichever of the
        two options was entered last was acted upon.  Also, the help page was
        clarified by separating the three process identifier formats from the
        "-u", "-k" and "-G" qualifiers.
      * Fix for the "ps" command to disallow the mutually-exclusive "-a", "-t",
        "-c", "-p", "-g", "-l" and "-r" options from being entered together.
        Without the patch, whichever of the seven options that was entered last
        was acted upon.
      * Added new "struct -[xd]" and "union -[xd]" options, which override the
        current default output format with hexadecimal or decimal format for just
        the command instance.  The "-o" member offset values and the structure
        size value are also controlled by the new options.  Without the patch, it
        would require changing the default output format with "hex" or "dec" prior
        to executing the "struct" or "union" command.
      * Fix for the "fuser" command, which may occasionally precede its output
        with the message "WARNING: FILE_NRHASH has changed from 32" on 2.6.19 and
        later kernels.  The message is harmless.
      * Exported new set_temporary_radix() and restore_current_radix() functions,
        which are used to temporarily override the current output radix setting.
      * Fixes for ARM gdb-7.0/bfd/elf32-arm.c file to handle gcc-4.6 compiler
        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.
      * Cosmetic fix for command-failure "Usage" messages to prevent the output
        from exceeding 80 columns.
      * Implemented a new "struct -p" option which can be used to dereference
        pointer members and display the target data.  The option can be used with
        the struct_name.member[,member] format, or if not, all pointers in the
        structure will be dereferenced.  If the member is a pointer, the member's
        data type will be prepended to the member name when displaying the target
        address; on the subsequent line(s) the target's symbol name will be
        displayed in brackets if appropriate, and if possible, the target data
        will be displayed.
      * Implemented support for "SADUMP" dumpfiles, which are created by the
        Fujitsu Stand Alone Dump facility.  The dump-creation mechanism is based
        in hardware-specific firmware, generating a dumpfile in three different
        formats: sadump dump device (single partition), sadump dump device (disk
        set), and archive file formats.  The crash utility recognizes all three
        formats.
      * Fix for the "bt" command to display Control registers 8-15 (s390x and
        s390) and floating point registers 8-15 (s390x only) correctly.  Without
        the patch, the register content was copied from the wrong location of the
        save area, and the wrong register values were displayed for the active
        tasks.
      * Fix for 2.6.34 ppc64 kernels, which were changed to dynamically allocate
        the paca structure, and changed the data type of "paca" symbol from array
        to a paca_struct pointer.
      * Fix for 2.6.36 and later ppc64 kernels, which overwrite the paca pointer
        variable to point to a static paca during a crash sequence just prior to
        the kexec of the secondary kernel, which contains a
        paca_struct.data_offset value that is valid only for crashing cpu.
        However, the kernel change also re-introduced the  __per_cpu_offset array,
        which had been removed in 2.6.15, which will be used as an alternative to
        the per-cpu paca_struct.
      * The new version of makedumpfile, 1.4.0, contains a facility that allows a
        user to filter out kernel data (e.g., security keys, confidential/secret
        information, etc.) from a vmcore.  The data that is filtered out is
        poisoned with character 'X' (0x58).  A filtered ELF kdump vmcore now
        contains a new "ERASEINFO" ELF note section that contains the filter data
        strings used by makedumpfile.  A filtered compressed kdump has a header
        version number 5, and contains new offset_eraseinfo and size_eraseinfo
        members in its sub-header that point to a copy of the filter data strings.
        In most cases, the erased kernel data will be inconsequential to the crash
        session, but it is certainly possible that the removal of crucial kernel
        data that the crash utility needs may cause the crash session to fail,
        cause individual commands to fail, or result in other unpredictable
        runtime behaviour.  This patch detects whether kernel data has been erased
        from the dumpfile, and if so, displays an early warning message alerting
        the user.  The "help -n" command displays the filter data strings that
        were used by makedumpfile.
    
    crash (5.1.7-4) unstable; urgency=low
    
      * Stop erroring on the set-but-unused messages (close: #643719)
    
    crash (5.1.7-3) unstable; urgency=low
    
      * Fix the fix for the "set but unused" patch for ppc (closes: #639067)
    
    crash (5.1.7-2) unstable; urgency=low
    
      * Fixed "set but unused" errors on PPC causing a FTBS.
    
    crash (5.1.7-1) unstable; urgency=low
    
      * New upstream version 5.1.7
      * Fix for the x86_64 "bt" command in the highly-unlikely event that a
        non-crashing CPU receives a NMI immediately after receiving an interrupt
        from another source in a 2.6.29 and later kernel.  In those kernels, the
        IRQ entry-point symbols "IRQ0x00_interrupt" through "IRQ0x##_interrupt" no
        longer exist, but the entry points exist as memory locations starting at
        the symbol "irq_entries_start".  Without the patch, if a shutdown NMI
        interrupt gets received while in one of the entry point stubs, "bt" will
        fail with the error message "bt: cannot transition from exception stack to
        current process stack".
      * The x86 and x86_64 "bt -e" and "bt -E" commands will display symbolic
        translations of kernel-mode exception RIP values.
      * Clarified two initialization-time CRASHDEBUG(1) messages to make it
        obvious that the two linux_banner strings being compared originate from
        the memory source or the kernel namelist file.
      * Fix for the x86 "bt" command to handle cases where the shutdown NMI was
        received when a task had just completed an exception, interrupt, or signal
        handler, and was about to return to user-space.  Without the patch, the
        backtrace would be proceeded with the error message "bt: cannot resolve
        stack trace", display the trace without the kernel-entry exception frame,
        and then dump the text symbols found on the stack and all possible
        exception frames.
      * Fix for 2.6.33 and later kernels that are not configured CONFIG_SMP.
        Without the patch, they fail during initialization with the error message
        "crash: invalid structure member offset: module_percpu".
      * Prepare for the imminent change in size of the vm_flags member of the
        vm_area_struct to be 64-bits in size for all architectures now that 32
        bits have been consumed.  The crash utility code had been handling the
        older change of the vm_flags member from a short to a long, but that would
        not account for the future change to a 64-bit member on 32-bit
        architectures.
      * Update of the "vm -f <flags>" option to the current upstream state.
        Without the patch, only 23 of the currently-existing 32 bit flags were
        being translated.  (<email address hidden>)
      * Fix for the "kmem -s", "kmem -S", "kmem -s <address>" and "kmem <address>"
        command options if none of the NUMA nodes in in a multi-node CONFIG_SLAB
        system have a node ID of 0.  Without the patch, "kmem -s" and "kmem -S"
        show all slab caches as if they contain no slabs; if an <address> is
        specified, the correct slab cache is found, but the command indicates
        "kmem: <slab-cache-name>: address not found in cache: <address>".
      * Cosmetic fix for the "kmem -[sS]" options if a CONFIG_SLAB kernel slab
        cache contains 100000 or more slabs, or uses a slab size of 1 or more
        megabytes.  Without the patch, the output utilizes more than 80 columns.
      * If a task was in user-space when a crash occurred, the user-space
        registers are saved in per-cpu NT_PRSTATUS ELF notes in either version 4
        compressed kdump headers, or in dumpfile headers created by the Fujitsu
        "sadump" facility.  In that case, the "bt" command will dump the x86 or
        x86_64 user-space register set.
      * Fix for the x86 "bt" command to handle cases where the shutdown NMI was
        received when a task had just received an interrupt, but before it had
        created a full exception frame on the kernel stack and called the
        interrupt handler.  Without the patch, the backtrace would be proceeded
        with the error message "bt: cannot resolve stack trace", display the trace
        without the kernel-entry exception frame, and then dump the text symbols
        found on the stack and all possible exception frames.
      * Fix for the x86 "bt" command to handle cases where the shutdown NMI was
        received when a task was in the act of being switched to.  Without the
        patch, the backtrace would be proceeded with the error message "bt: cannot
        resolve stack trace", display the trace without the kernel-entry exception
        frame, and then dump the text symbols found on the stack and all possible
        exception frames.
     -- Stefan Bader <email address hidden>   Tue, 11 Jun 2013 17:32:56 +0200
  • 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>".
     -- Michael Vogt <email address hidden>   Fri, 17 Jun 2011 09:20:33 +0200