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@xxxxxxxxxx) - 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@xxxxxxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxxxxxxxxxx) - Preparation for new s390x kernels that will increase MAX_PHYSMEM_BITS from 42 to 46. (mahesh@xxxxxxxxxxxxxxxxxx, holzheu@xxxxxxxxxxxxxxxxxx, anderson@xxxxxxxxxx) -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility