- Fix for s390x and x86 "extend" command regression created by the "crash -x" option introducted in crash version 4.0.9. Without the patch, the "extend" command on s390x and x86 machines fail with the error message: "extend: <module>.so: not an ELF format object file". (holzheu@xxxxxxxxxxxxxxxxxx, anderson@xxxxxxxxxx) - Cleanup of top-level source files to address compiler warnings generated by the CFLAGS used in the Fedora build environment: main.c ppc64.c tools.c symbols.c defs.h qemu-load.c qemu.c xen_hyper_command.c xendump.c netdump.c s390_dump.c lkcd_common.c remote.c cmdline.c x86_64.c net.c dev.c kernel.c task.c filesys.c memory.c lkcd_x86_trace.c ppc64.c x86.c s390.c s390x.c s390dbf.c Only two bugs (s390/s390x) were discovered as a result of this exercise. The vast majority of the warnings were primarily benign "may be used uninitialized in this function" false-positive warnings, but were addressed nonetheless. A few "dereferencing type-punned pointer will break strict-aliasing rules" warnings still exist, but a fix attempt may prove more troublesome or dangerous than it's worth. (anderson@xxxxxxxxxx) - Fix for "pte" command on s390 and s390x machines if the pte value argument evaluates as not present. Without the patch, the command would not display the pte value, but would either print random stack data (if ASCII), or worse case, cause a segmentation violation. (anderson@xxxxxxxxxx) - Allow command redirection to pipes or files when using gdb commands alone on the command line without preceding the command string with "gdb". Without the patch, the pipe/redirection data on the command line would be appended to the command string passed to gdb, leading to bizarre results when gdb attempts to evaluate the redirection pieces of the command string. (bob.montgomery@xxxxxx) - Fix for the processing of bit fields on big endian systems in the SIAL extension module. Without the patch, bits are not copied to the correct position and are not shifted the right way. (holzheu@xxxxxxxxxxxxxxxxxx) - Fix for "dis -l" to properly display line-number information for 2.6.21 and later x86_64 kernel module text addresses. Without the patch, a single erroneous file/line-number indication would be displayed prior to the disassembly output, typically from the file "include/linux/cpumask.h". This was due to an abnormal text block descriptor from a function in hpet.c, which starts in the kernel text segment and extends up into the vsyscall FIXMAP region, effectively encompassing all kernel module address space. (john.wright@xxxxxx) - Related to the line number patch above, fix to prevent querying the embedded gdb module for line numbers of kernel module text addresses if the module's debuginfo data has not been loaded. Without the patch, the same erroneous file/line-number could be displayed by commands like "dis -l" or "bt -l" when a module's debuginfo data has not been loaded, on 2.6.21 and later x86_64 kernels. (anderson@xxxxxxxxxx) - Implemented a new "ps -G" option, which restricts the process status output to show only the data of the thread group leader of a thread group. The original request was to avoid the display of redundant RSS data shared by many threads. (anderson@xxxxxxxxxx) - Several fixes for the "repeat" command when used in conjunction with an input file. Without the patch: (1) Depending upon the command executed from the input file, a a SIGINT would kill the command currently being executed from the input file, but the "repeat" command would then restart it. (2) If a command in the input file redirected its output to a pipe, the repeat operation could stop prematurely after executing that particular command. (3) If a command in the input file redirected its output to a pipe, the zombies of the command being piped to would not be cleaned up until the repeat command was stopped. (4) If the last command in the input file redirected its output to a pipe, all subsequent executions of the input file would only display the output of that last command. (anderson@xxxxxxxxxx) - Added "trace.c" to the extensions subdirectory, where it will get built automatically when "make extensions" is run from the top-level source directory. The trace.so extension module has also been added to the crash-extensions-<version>.rpm subpackage that is created by the crash-<version>.src.rpm, which installs extension modules in the /usr/lib[64]/crash/extensions directory. (anderson@xxxxxxxxxx) - Fix for a potential failure to initialize the kmem slab cache subsystem on 2.6.22 and later CONFIG_SLAB kernels if the dumpfile has pages excluded by the makedumpfile facility. Without the patch, the following error message would be displayed during initialization: "crash: page excluded: kernel virtual address: <address> type: kmem_cache_s buffer", followed by "crash: unable to initialize kmem slab cache subsystem". (anderson@xxxxxxxxxx) - Fix for a potential session initialization failure on x86_64 kernels if the dumpfile has pages excluded by the makedumpfile facility. Without the patch, the following error message would be displayed: "crash: page excluded: kernel virtual address: <address> type: tss_struct ist array". (anderson@xxxxxxxxxx) - Fix for "kmem -z" option on 2.6.29 and later kernels. Without the patch, against 2.6.29 and 2.6.30 kernels, the embedded zone VM_STAT contents would not be displayed after the top line showing the SIZE, PRESENT, /MIN/LOW/HIGH and FREE page counts; on 2.6.31 kernels, the command would fail with the error message: "kmem: invalid (optional) structure member offsets: zone_pages_min or zone_struct_pages_min". (anderson@xxxxxxxxxx) - Fix for "irq" command on 2.6.29 and later CONFIG_SPARSE_IRQ kernels. Without the patch, the "irq [number]" command would fail on x86_64 with the error message: "irq: x86_64_dump_irq: irq_desc[] does not exist?", on ia64: "ia64_dump_irq: neither irq_desc or _irq_desc exist", and on the other architectures: "irq: neither irq_desc nor _irq_desc symbols exist". (anderson@xxxxxxxxxx) - Fix for the "kmem -i" option on 2.6.31 kernels. Without the patch the SHARED column may erroneously indicate 0 pages. (anderson@xxxxxxxxxx) - Fix for the "kmem -i" option on 2.6.26 through 2.6.30 x86_64 kernels. Without the patch, the swap page information would not be displayed, and the error message "kmem: swap_info[0].swap_map at <address> is unaccessible" would be displayed. (anderson@xxxxxxxxxx) - Fix for "kmem -p" option on older 64-bit kernels that have a 32-bit page.flags field. Without the patch, the page.count field in the page structure would get merged with the page.flags field, and the result displayed as a 64-bit value in the FLAGS column. (anderson@xxxxxxxxxx) - Fix for "kmem -i" option on older 64-bit kernels whose page.count unreferenced value was -1 (instead of 0). Without the patch, the SHARED column would contain invalid values. (anderson@xxxxxxxxxx) - Change the cursor location when cycling through the command history when in "vi" editing mode (the default). When using the arrow keys, or when using CTRL-n and CTRL-p, the cursor will be placed after the last character in each line, and will be in "insert" mode. When using ESC followed by j or k, the cursor will be placed on the last character in the line, and will be in "command" mode. Without the patch, the cursor would be placed on the first character in the line regardless of the keys used to cycle through the history. (anderson@xxxxxxxxxx) Download from: http://people.redhat.com/anderson -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility