crash 7.0.2-1ubuntu1 source package in Ubuntu


crash (7.0.2-1ubuntu1) trusty; urgency=low

  * Merge with Debian; remaining changes:
    - Build for armhf.
    - Add a live autopkgtest to run crash on running kernel.
  * Build for AArch64.

crash (7.0.2-1) unstable; urgency=low

  * Added "bison" to the BuildRequires line of the crash.spec file.
           Without the patch, the build of the embedded gdb-7.6 module will fail
           unless either /usr/bin/bison or /usr/bin/yacc are available.  The
           failure will result in a stream of error messages from different
           files that indicate:

             multiple definition of 'main'
             undefined reference to 'c_parse_escape'
             undefined reference to 'ada_parse'
             undefined reference to 'ada_error'
             undefined reference to 'c_parse'
             undefined reference to 'c_error'
             undefined reference to 'cp_demangled_name_to_comp'
             undefined reference to 'cp_demangled_name_parse_free'
             undefined reference to 'cp_comp_to_string'
             undefined reference to 'cp_new_demangle_parse_info'

           and the build fails like so:

             collect2: ld returned 1 exit status
             make[4]: *** [gdb] Error 1
             crash build failed

           If building with rpmbuild, the new BuildRequires "bison" entry will
           prevent the build from initiating unless the bison package has been
           installed.  If building with the tar.gz file, the build attempt will
           proceed and fail unless either the bison or byacc (Berkeley Yacc)
           package is installed.

  * Fix the S390X initialization sequence on kernels that are configured
           with CONFIG_STRICT_DEVMEM to automatically try /proc/kcore if:

            (1) the /dev/crash driver is not available, and
            (2) the initial /dev/mem access fails.

           Without the patch, if /dev/mem is selected as the memory source and
           it is restricted, the crash session will fail during initialization
           with the error message "crash: read error: kernel virtual address:
           <address>  type: cpu_possible_mask".

  * When checking whether a argument on the crash command line is a dumpfile
    that may be in makedumpfile's "flattened" format, do not bother checking
    character device files.

  * Fix for the PPC64 virtual-to-physical virtual address translation
    mechanism for vmalloc and user-space virtual addresses on Linux 3.10 and
    later kernels.  Without the patch, the message "WARNING: cannot access
    vmalloc'd module memory" is displayed during initialization, and during
    the crash session, if a command attempts to translate or read a vmalloc or
    user-space virtual address, it will fail.

  * Clean up all files that emit "warning: format not a string literal and no
    format arguments" when compiled with -Wformat-security warning option.
    All instances of fprintf, sprintf and snprintf using the format
    "fprintf(fp, buf)" are replaced with "fprintf(fp, "%s", buf)".  Also, the
    -Wformat-security warning option has been added to the option list used
    when compiling with "make warn".

  * Fix a build failure when compiling with very old gcc-3.4.6 version on a
    2.6.9-based RHEL4 IA64 host.  The bfd library in gdb-7.6 is compiled with
    the -Werror option, and it fails with the message "elflink.c:4733:
    warning: 'idx' might be used uninitialized in this function".

  * Fix a build failure when compiling with very old gcc-3.4.6 version on a
    2.6.9-based RHEL4 S390 or S390X hosts.  The embedded gdb-7.6 fails to
    compile with the error message "s390-nat.c:364: error: storage size of
    'iov' isn't known".

  * Fix to properly store two-digit kernel version numbers. (closes: #717036)

  * Fix to provide hugepage address translation for the "vtop" command on the
    PPC64 architecture.

  * Fix for the "log" command to account for the kernel data structure name
    change from "log" to "printk_log" in Linux 3.11-rc4 and later kernels.
    Without the patch, the message "WARNING: log buf data structure(s) have
    changed" will be displayed during initialization and by the "log" command.

  * Fix to add a linefeed after the description of the "kmem -I" option in the
    "help kmem" output, which was recently added in crash-7.0.0.

  * Document the "-s" command line option in the "crash -h|--help" output and
    in the crash.8 man page to also indicate that runtime command scrolling is
    turned off by default.

  * Fix for the "irq -d" option on 2.6.25 and later X86_64 kernels to display
    the Intel interrupt descriptor table contents.  Without the patch, those
    kernel versions would display "irq: -d option not supported or applicable
    on this architecture or kernel".

  * Fix for the "kmem -[sS]" options on Linux 3.11-rc1 and later kernels that
    are configured with CONFIG_SLAB.  Without the patch, the command fails
    with the error message "kmem: invalid structure member offset:

  * Fix for the "kmem <address>" and the "bt -F" options on Linux 3.8 and
    later kernels that are configured with CONFIG_SLUB.  Without the patch,
    the command would fail with the error message "kmem: invalid structure
    member offset: page_slab".

  * Fix misspellings in the "bt" and "search" help page output.

  * Fix for the determination of the base of the kernel's unity-mapped virtual
    address region on recent ARM kernels whose "_stext" variable address has
    changed from 0xc0008000 to 0xc0100000.  Without the patch, the crash
    session fails during invocation with the error message "crash: vmlinux and
    vmcore do not match!".

  * When printing data structures, prevent the embedded gdb from symbolically
    translating pointers that are not kernel virtual addresses.  Kernel or
    module symbols that are not virtual addresses can be mistaken for virtual
    addresses, leading to NULL pointers being invalidly translated into a
    symbol name from the vmlinux or module object file.  For example, in
    X86_64 kernels, NULL pointers are translated into the symbol
    "irq_stack_union", whose value is not a virtual address, but rather a
    per-cpu offset value of 0.

  * Fix for the "kmem -s <address>" or "kmem <address>" options on Linux 3.11
    and later kernels configured with CONFIG_SLAB.  Without the patch, both
    commands fail with the error message "kmem: cannot resolve cache_cache".

  * Fix to prevent the "bt" command from generating a segmentation violation
    in a case where the per-cpu "current_task" variable and the runqueue's
    "curr" variable did not agree, and the panic task had overflowed its
    kernel stack.  This led to the selection of the a starting RSP address
    which belonged to the other task; without the patch, the command generated
    a segmentation violation after printing the first frame of the backtrace.

crash (7.0.1-3) unstable; urgency=low

  * Updated format-strings patch to cover additional architectures
  * Requested update to packages-arch-specific to enable s390x and armel

crash (7.0.1-2) unstable; urgency=low

  * Missed updating the Architecture line in the -1 upload, armel
    (closes: #656132)
  * Move defs.h to /usr/include/crash (closes: #702513)
  * Patch from Stefan Bader to add a format string to all *printf calls

crash (7.0.1-1) unstable; urgency=low

  * Enable armel (closes: #656132)
  * Enable s390x (closes: #710675)
  * Include the crash/defs.h header (closes: #702513)
  * Sync with the Ubuntu crash package, build crash extensions, SPU has been
    dropped (closes: #584119), lpia has been dropped (closes: #504522).
  * Fix the -I include path sequence in the extensions/ file to
    prevent a series of "redefined" and "redeclaration" warnings when
    compiling the EPPIC extension module.
  * Address two compile-time warnings generated as a result of the
    gdb*7.6.patch.  Without the patch, there are "warning: no previous
    prototype" warnings for gdb_main_entry() and replace_ui_file_FILE().
  * Implemented a new "mod -t" option that walks through the installed modules
    and checks for non*zero values in each module's "taints" bitmask, and
    translates the bits into symbolic letters if possible, or shows the
    hexadecimal value of the bitmask if not.  In older kernels, the
    "license_gplok" field is checked, and if non*zero, its value is displayed
    in hexadecimal.  Lastly, if the "gpgsig_ok" member exists and is zero, a
    "(U)" notation will also be displayed.
   * Fixed compiler warnings generated by extensions/trace.c when compiled
     with *DFORTIFY_SOURCE=2.  Without the patch, the messages "warning:
     ignoring return value of 'mktemp', declared with attribute
     warn_unused_result", "warning: ignoring return value of 'fwrite',
     declared with attribute warn_unused_result", and "warning: 'trace_dat'
     may be used uninitialized in this function" are generated.
  * Laid down the basic infrastructure for the ARM64 backtrace facility using
    the kernel's arm64 unwind facility as a basis.  Compile*tested only.
  * Implemented the ARM64 virtual-to-physical kernel and user address
    translation functions, supporting both 2*level page tables with 64K pages,
    and 3*level page tables with 4K pages.  Also added the associated PTE
    translator function.  Compile*tested only.
  * Implemented the capability of building crash as an x86_64 binary for
    analyzing ARM64 dumpfiles on an x86_64 host, which can be done by entering
    "make target=ARM64".  After the initial build is complete, subsequent
    builds can be done by entering "make" alone.
  * Added "aarch64" to the ExclusiveArch: line in the crash.spec file.
  * Fix for the S390X "bt" command for Linux 3.10 and later kernels.  Without
    the patch, the starting stack location of the per*cpu async and panic
    stacks of active tasks would be incorrectly determined.

crash (7.0.0-1) unstable; urgency=low

  * Updated the embedded gdb version to FSF gdb-7.6, which was officially
    released by the Free Software Foundation on on 4/26/13.
    The primary motivation for upgrading from gdb-7.3.1 is for future ARM64
    support, but there are also issues with respect to kernels built with
    gcc-4.8.0.  The relevant pieces of gdb-7.3.1.patch were forward-ported to
    the gdb-7.6.patch, and the GDB_7_6 #define has been applied in the
    top-level sources where appropriate.

  * Continued incremental steps for support of the ARM64 architecture.

  * Fix for the "struct name.member <address>" option if the "member" name is
    also coincidentally a member of an embedded structure that is located
    before the targeted member.  Without the patch, the value of the embedded
    structure's member is displayed instead of the targeted member.

  * Expose a heretofore unadvertised "kmem -[sS] -I slab[,slab]" option that
    specifies one or more slab cache names in a comma-separated list that the
    "kmem -[sS]" option should ignore.  This can be helpful in cases where a
    corrupted slab cache may never complete, or in very large memory systems
    where one or more caches take an inordinate amount of time to complete.

  * Fix for the "kmem -i" option on Linux 3.9 and later kernels.  Without the
    patch, the "TOTAL SWAP", "SWAP USED" and "SWAP FREE" lines are not
    displayed because the kernel's former "swapper_space" singular
    address_space structure has has been changed into a "swapper_spaces" array
    of address_space structures, with one for each swap partition.

  * Support for the PPC64 BOOK3E processor family, whose virtual memory
    layout and PTE format are significantly different.  Without the patch, the
    crash session fails to initialize properly.  (<email address hidden>)

  * Fix for the PPC64 "sys", "mach" and initial system banner display of of
    the processor speed in more recent kernels.  Without the patch, the
    "MACHINE" line in the initial banner and in the "sys" command display may
    show "MACHINE: ppc64 (unknown Mhz)", and the "mach" command may show
    "PROCESSOR SPEED: (unknown)".  (<email address hidden>, <email address hidden>)

  * Since the libgdb.a file no longer exists in gdb-7.6, the Makefile does not
    check for it as a determining factor for whether a build has succeeded.

  * gdb-7.6 requires that the bfd library's "config.h" file be #include'd
    before the "bfd.h" file by the top-level symbols.c file.

  * gdb-7.6 has replaced/moved the gnu_debuglink_crc32() utility function to
    bfd_calc_gnu_debuglink_crc32(); the call in symbols.c has been configured
    based upon the gdb version.

  * gdb-7.6 has reworked its do_cleanups() functionality, which requires the
    gdb_error_hook() function to pass all_cleanups() as an argument.

  * gdb-7.6 causes the anon_member_offset() function to fail due to a change
    in the output string; the function has been changed to work with both old
    and new gdb versions.

  * gdb-7.6 required changes to vm_stat_init() and vm_event_state_init()
    functions because enum lists get displayed differently on the S390X and
    PPC64 architectures, which in turn caused failures of "kmem -i", "kmem -z"
    and "kmem -V" on those two machine types.

  * Adjusted the alignment of the "kmem -V" and "kmem -z" display of the items
    in the vm_stat[] array based upon the longest enumerator name string.

  * Adjusted the alignment of the "kmem -V" display of the cumulative totals
    of the per-cpu "vm_event_states" items based upon the longest enumerator
    name string.

  * Modified the top-level Makefile such that if the tar.gz file of the
    configured gdb version does not exist in the build directory, try to wget
    the file from  This is normally not necessary
    because the most recent gdb tar.gz file is bundled with the the crash
    utility tar.gz and src.rpm files.  However, it will allow the use of the
    gdb-less crash.tar.gz file created via "make tar" to be copied to another
    location, or perhaps copied to a git tree, and then built without
    containing the the gdb tar.gz file.

  * Fix for the s390x.c file to handle a gcc-4.8.0 compiler warning when
    building crash with "make warn", or compiler failures when building with
    "make Warn" on an S390x machine.  Without the patch, gcc-4.8.0 generates
    the message "error: variable ‘psw_addr’ set but not used

  * Fixes for the s390dbf.c file to handle gcc-4.8.0 compiler warnings when
    building crash with "make warn", or compiler failures when building with
    "make Warn" on an S390X machine.  Without the patch, gcc-4.8.0 generates
    three "error: variable ‘<variable>’ set but not used
    [-Werror=unused-but-set-variable]" messages.

  * Fix for an X86_64 warning message that gets displayed during session
    initialization when running against Linux 3.9 kernels that were compiled
    with gcc-4.8.0.  Without the patch, the warning message "crash: cannot
    determine thread return address" is displayed prior to the system

  * Fix for lack of kernel text line number information by the "dis -l" and
    "sym <text-symbol or address>" options on Linux 3.9 kernels that were
    compiled with gcc-4.8.0.  Without the patch, the line number information
    for kernel text symbols of type "(T)" may not be able to be determined and
 -- Matthias Klose <email address hidden>   Sat, 19 Oct 2013 16:54:49 +0200

Upload details

Uploaded by:
Matthias Klose on 2013-10-19
Uploaded to:
Original maintainer:
Ubuntu Developers
i386 ia64 alpha powerpc amd64 armel armhf arm64 s390x
Low Urgency

See full publishing history Publishing

Series Pocket Published Component Section


File Size SHA-256 Checksum
crash_7.0.2.orig.tar.gz 30.5 MiB 203c1b0e444ae32b515febbbf113e15f56554799a2c5f2742e3a0b61baf408ca
crash_7.0.2-1ubuntu1.diff.gz 64.4 KiB 91d11dfb59447f6d71850e0a04d50e11f1fb62f50fbf689d41c5ed0e1b26051b
crash_7.0.2-1ubuntu1.dsc 1.2 KiB 7f2a9256f8992d5d3f4d21b16f0fddda0f561e2613ab548e9d4335647fd27ed2

Available diffs

View changes file

Binary packages built by this source

crash: kernel debugging utility, allowing gdb like syntax

 The core analysis suite is a self-contained tool that can be used to
 investigate either live systems, or multiple different core dump formats
 including kdump, LKCD, netdump and diskdump.
 o The tool is loosely based on the SVR4 crash command, but has been
    completely integrated with gdb in order to be able to display
    formatted kernel data structures, disassemble source code, etc.
 o The current set of available commands consist of common kernel core
    analysis tools such as a context-specific stack traces, source code
    disassembly, kernel variable displays, memory display, dumps of
    linked-lists, etc. In addition, any gdb command may be entered,
    which in turn will be passed onto the gdb module for execution.
 o There are several commands that delve deeper into specific kernel
    subsystems, which also serve as templates for kernel developers
    to create new commands for analysis of a specific area of interest.
    Adding a new command is a simple affair, and a quick recompile
    adds it to the command menu.
 o The intent is to make the tool independent of Linux version dependencies,
    building in recognition of major kernel code changes so as to adapt to
    new kernel versions, while maintaining backwards compatibility.