- Due to a change in the x86 disassembler output from the embedded gdb-7.0 that was introduced in crash version 5.0.0, there may be a stream of warning messages during invocation that indicate "crash: invalid input: <string>:" and "crash: input string too large: <string>: (9 vs 8)" on 2.6.20 and earlier x86 kernels. (anderson@xxxxxxxxxx) - As of glibc 2.11, the mkstemps() function has been introduced as a versioned symbol. As a result, crash utility binaries built on host machines with glibc 2.11 or later cannot be run on systems that run pre-2.11 glibc versions, failing during invocation with the error message "crash: relocation error: crash: symbol mkstemps, version GLIBC_2.11 not defined in file libc.so.6 with link time reference". With the patch, the pre-existing version of mkstemps() from the built-in libiberty.a library will always be used. (jmoyer@xxxxxxxxxx) - Fix for the "irq" command on 2.6.33 and later kernels to account for the removal of the irqaction.mask structure member. Without the patch, the "irq" command fails with the error message "irq: invalid structure member offset: irqaction_mask". (bernhard@xxxxxxxxx) - Added a defensive mechanism to handle a corrupted "cache_cache" kmem_cache structure. Without the patch, a vmcore that had such a corruption caused a failure during invocation with the error message "crash: zero-size memory allocation!". (anderson@xxxxxxxxxx) - Fix for the "swap", "kmem -i", and "vm -p" commands to account for the 2.6.33 kernel changes to the swap_info_struct data structure and the swap_info[] array type. Without the patch, "swap" would show only the command's header, "kmem -i" would show zero swap usage, and "vm -p" would show "(unknown swap location)" when translating the swap file name for any swapped-out pages in the task. (anderson@xxxxxxxxxx) - Fix for a segmentation violation during session invocation when running against 2.6.30 or later x86_64 dumpfiles whose kernel is not configured with CONFIG_SMP. (anderson@xxxxxxxxxx) - Fix for the "bt" command on an ia64 "INIT" process that interrupted a task that was running in user space, but was unable to modify the original (interrupted) task's stack. Without the patch, the "INIT" task's backtrace would not display the task that was interrupted, and would display the error message "bt: unwind: failed to locate return link (ip=<user-virtual-address>)!". With the patch, the interrupted task information is displayed in the same manner as if the original stack had been modified. (tindoh@xxxxxxxxxx) - Fix for x86, s390, s390x and ia64 architectures to set the system cpu count equal to the highest cpu online plus one. Without the patch, those architectures would use the number of online cpus as the system's total cpu count, which would be misleading when any offline cpu number was less than the highest online cpu number. (anderson@xxxxxxxxxx) - Fix for package build failure on x86_64 when using gcc-4.5. Without the patch, these types of errors are generated: unwind_x86_32_64.c:50:2: error: initializer element is not constant unwind_x86_32_64.c:50:2: error: (near initialization for 'reg_info[7].offs') unwind_x86_32_64.c:50:2: error: initializer element is not constant unwind_x86_32_64.c:50:2: error: (near initialization for 'reg_info[8].offs') (troy.heber@xxxxxx) - Fix to recognize the symbol type change of per-cpu variables from 'd' or 'D' to 'V'. Without the patch, entering a command of the form "p per_cpu__<variable>" would fail with the error message "p: gdb request failed: p per_cpu__<variable>". With the fix, the symbol is recognized as a per-cpu variable, in which case the data type of the variable is displayed, followed by a list of the virtual addresses of each per-cpu instance of the variable. (anderson@xxxxxxxxxx) - Fix for the "struct" and "union" commands when passed an address that is in a valid kernel virtual address region but is either unmapped or non-existent. Without the patch, the following three error messages are displayed: struct <name> struct: invalid kernel virtual address: <kernel-address> type: "gdb_readmem_callback" gdb called without error_hook: Cannot access memory at address <kernel-address> *** glibc detected *** crash: double free or corruption (!prev): <crash-address> *** followed by a backtrace and the crash utility memory map. The session aborts at that point. With the fix, the commands will fail gracefully after displaying error messages reporting that the kernel virtual address cannot be accessed. (anderson@xxxxxxxxxx) - Update for 2.6.33 and later s390 and s390x kernels to account for the "_lowcore" structure member name change from "st_status_fixed_logout" to "psw_save_area". (holzheu@xxxxxxxxxxxxxxxxxx) - Fix for very large Xen domU dumpfiles that locate the base offset of relevant ELF sections beyond the 4GB mark. Without the patch, the crash session fails with the error messages "crash: cannot find mfn <number> (0x<number>) in page index" followed by "crash: cannot read/find cr3 page". (anderson@xxxxxxxxxx, xiaowei.hu@xxxxxxxxxx) - If a kernel crash occurs during a kernel module loading operation, it is possible that a subsequent crash session on the vmcore may result in a segmentation violation during the "please wait... (gathering module symbol data)" phase. (john.wright@xxxxxx) - Fix for a gdb-7.0 regression that causes the line number capability to fail with certain ranges of x86 base kernel text addresses. Without the patch, the "dis -l <symbol>" or "sym <symbol>" commands would fail to show line number information for certain ranges of base kernel text addresses. (anderson@xxxxxxxxxx) - Fix for the "bt" command when run on offline s390/s390x "swapper" idle tasks. Without the patch, the command fails with the error message "bt: invalid kernel virtual address: ffffffffffffc000 type: async_stack". (holzheu@xxxxxxxxxxxxxxxxxx) - Preparation for future s390x ELF dumpfile format. (holzheu@xxxxxxxxxxxxxxxxxx) Download from: http://people.redhat.com/anderson -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility