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

Dave Anderson anderson at redhat.com
Thu Dec 22 16:05:56 UTC 2011


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

Changelog:

 - 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.  Taking a simple example, 
   consider an a file named "input" which contains several task_struct 
   addresses:
    
    crash> cat input
    ffff88022bdc2080 
    ffff88012ae78ac0 
    ffff88012c334b00 
    ffff88012c335540
    crash>

   Each line in the input file may be passed to a crash command by
   entering the redirection character followed by the filename:

    crash> ps < input
       PID    PPID  CPU       TASK        ST  %MEM     VSZ   RSS  COMM
       5752    624   5  ffff88022bdc2080  IN   0.0   12340  2584  udevd
       PID    PPID  CPU       TASK        ST  %MEM     VSZ   RSS  COMM
       5779   4927   1  ffff88012ae78ac0  IN   0.0   97820  3916  sshd
       PID    PPID  CPU       TASK        ST  %MEM     VSZ   RSS  COMM
       5956      1   3  ffff88012c334b00  IN   0.0   27712   868  auditd
       PID    PPID  CPU       TASK        ST  %MEM     VSZ   RSS  COMM
       5784   5779   2  ffff88012c335540  IN   0.0  108392  1856  bash
    crash> struct task_struct.pid,mm < input
      pid = 5752
      mm = 0xffff88022ab65100
      pid = 5779
      mm = 0xffff88012c272180
      pid = 5956
      mm = 0xffff88012b00f7c0
      pid = 5784
      mm = 0xffff88012ae30800
    crash> 

   The input file may contain data containing anything that can be 
   inserted into a given crash command line.  There is no restriction
   on the number of arguments in each line; essentially the data in 
   each input file line will be inserted into the command line starting 
   where the "<" character is located, and any intervening whitespace 
   and the filename will be removed.  However, because pipes and output
   redirection are set up prior to the insertion of input file data, 
   pipe or redirection should not be put on input file lines.  If that 
   is attempted, the arguments will just be passed to the command, with 
   unpredictable results.  However, output can be piped or redirected 
   the same way as can be done with normal commands:

    crash> set < input | grep -e COMMAND -e CPU
    COMMAND: "udevd"
        CPU: 5
    COMMAND: "sshd"
        CPU: 1
    COMMAND: "auditd"
        CPU: 3
    COMMAND: "bash"
        CPU: 2
    crash>

   Many thanks to Josef Bacik for proposing this feature.
   (anderson at redhat.com)

 - 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.
   (d.hatayama at jp.fujitsu.com)

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

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

 - 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, like this
   simple example using the crash memory driver module:

     crash> mod -g -s crash
     ... [cut] ...
     crash> sym -m crash
     ffffffff88edb000 MODULE START: crash
     ffffffff88edb000 [.text]: section start
     ffffffff88edb000 (t) crash_llseek
     ffffffff88edb01d (t) crash_read
     ffffffff88edb18c [.text]: section end
     ffffffff88edb18c [.exit.text]: section start
     ffffffff88edb18c (T) cleanup_module
     ffffffff88edb18c (t) crash_cleanup_module
     ffffffff88edb198 [.exit.text]: section end
     ffffffff88edb2a0 [__versions]: section start
     ffffffff88edb2a0 (r) ____versions
     ffffffff88edb2a0 (r) __versions
     ffffffff88edb4a0 [__versions]: section end
     ffffffff88edb920 [.data]: section start
     ffffffff88edb920 (d) crash_dev
     ffffffff88edb960 (d) crash_fops
     ffffffff88edba48 [.data]: section end
     ffffffff88edba80 [.gnu.linkonce.this_module]: section start
     ffffffff88edba80 (D) __this_module
     ffffffff88ee3c80 [.gnu.linkonce.this_module]: section end
     ffffffff88ee3cc1 MODULE END: crash
     crash> 

   The option may also be used in conjunction with "mod -S".
   (nakayama.ts at ncos.nec.co.jp)

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

 - 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.
   (d.hatayama at jp.fujitsu.com)

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

 - 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.
   (mahesh at linux.vnet.ibm.com)

 - Preparation for new s390x kernels that will increase MAX_PHYSMEM_BITS 
   from 42 to 46.
   (mahesh at linux.vnet.ibm.com, holzheu at linux.vnet.ibm.com,
    anderson at redhat.com)




More information about the Crash-utility mailing list