[Crash-utility] [ANNOUNCE] crash version 6.0.8 is available

Dave Anderson anderson at redhat.com
Fri Jun 29 15:40:47 UTC 2012


Download from: http://people.redhat.com/anderson

Changelog: 

 - 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.
   (qiaonuohan at cn.fujitsu.com, anderson at redhat.com)

 - 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.
   (anderson at redhat.com)

 - 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.
   (anderson at redhat.com)

 - 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.
   (anderson at redhat.com)

 - 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.
   (anderson at redhat.com)

 - 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.
   (anderson at redhat.com)

 - 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.
   (anderson at redhat.com)

 - 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.
   (lchouinard at s2sys.com)

 - 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.
   (ptesarik at suse.cz, qiaonuohan at cn.fujitsu.com, anderson at redhat.com)

 - 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. 
   (anderson at redhat.com)

 - 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.
   (rabin at rab.in, laijs at cn.fujitsu.com)

 - 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.
   (anderson at redhat.com)

 - 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.
   (anderson at redhat.com)

 - Added "ipcs" and "tree" command references to the crash.8 man page.
   (anderson at redhat.com)

 - 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. 
   (anderson at redhat.com)

 - 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. 
   (anderson at redhat.com)

 - 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.
   (nakayama.ts at ncos.nec.co.jp)

 - 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.
   (anderson at redhat.com)

 - 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".
   (nakayama.ts at ncos.nec.co.jp)

 - Fix for the 32-bit PPC "pte" command to properly translate the PTE
   bit settings based upon the correct Book3E specifications.
   (nakayama.ts at ncos.nec.co.jp)




More information about the Crash-utility mailing list