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@xxxxxxxxxxxxxx, anderson@xxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxx) - 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@xxxxxxx, qiaonuohan@xxxxxxxxxxxxxx, anderson@xxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxx, laijs@xxxxxxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxx) - Added "ipcs" and "tree" command references to the crash.8 man page. (anderson@xxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxxxxxx) - 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@xxxxxxxxxx) - 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@xxxxxxxxxxxxxx) - Fix for the 32-bit PPC "pte" command to properly translate the PTE bit settings based upon the correct Book3E specifications. (nakayama.ts@xxxxxxxxxxxxxx) -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility