----- Original Message -----
Hey David,
I just upgraded a dev box to v3.5-rc1 and now crash doesn't work. Have
you seen this before?
crash 6.0.7
Copyright (C) 2002-2012 Red Hat, Inc.
Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation
Copyright (C) 1999-2006 Hewlett-Packard Co
Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited
Copyright (C) 2006, 2007 VA Linux Systems Japan K.K.
Copyright (C) 2005, 2011 NEC Corporation
Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc.
Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
This program is free software, covered by the GNU General Public License,
and you are welcome to change it and/or distribute copies of it under
certain conditions. Enter "help copying" to see the conditions.
This program has absolutely no warranty. Enter "help warranty" for
details.
GNU gdb (GDB) 7.3.1
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<
http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
SYSTEM MAP: /boot/System.map-3.5.0-rc1-1.2-desktop
DEBUG KERNEL: /root/xfs/vmlinux
DUMPFILE: vmcore
CPUS: 4
DATE: Tue Jun 5 15:13:35 2012
UPTIME: 01:58:35
LOAD AVERAGE: 2.06, 1.61, 1.77
TASKS: 90
NODENAME: nfs7
RELEASE: 3.5.0-rc1-1.2-desktop
VERSION: #20 SMP PREEMPT Tue Jun 5 12:56:22 CDT 2012
MACHINE: i686 (2399 Mhz)
MEMORY: 6 GB
PANIC:
crash: cannot determine length of symbol: log_end
I had been using crash 6.0.6 on this machine on a regular basis until
upgrading the kernel. I expect if I go back to the older kernel it will
work again. Any suggestions? More info I can provide?
Thanks,
Ben
Right, this recent upstream kernel commit has re-designed the log buffer
scheme:
commit 7ff9554bb578ba02166071d2d487b7fc7d860d62
Author: Kay Sievers <kay(a)vrfy.org>
Date: Thu May 3 02:29:13 2012 +0200
printk: convert byte-buffer to variable-length record buffer
Eventually I, or somebody on the crash-utility mailing list, will get around
to updating crash to handle the new scheme.
The only thing you can do to work around it for now is to hack kernel.c
and just force the dump_log() function to return immediately:
void
dump_log(int msg_level)
{
int i, len, tmp;
ulong log_buf, log_end;
char *buf;
char last;
ulong index;
struct syment *nsp;
int log_wrap, loglevel, log_buf_len;
+ return;
if (symbol_exists("log_buf_len")) {
get_symbol_data("log_buf_len", sizeof(int),
&log_buf_len);
get_symbol_data("log_buf", sizeof(ulong), &log_buf);
} else {
...
Dave