[Crash-utility] Can't open i386 vmcore with crash on 2.6.20-rc2kernels
Dave Anderson
anderson at redhat.com
Wed Jan 3 14:29:52 UTC 2007
Vivek Goyal wrote:
> Hi Dave,
>
> I can't open vmcore for 2.6.20-rc2 vanilla kernel with crash. I am using
> latest crash version 4.0-3.16.
>
> ******************************************************************************
> crash 4.0-3.16
> Copyright (C) 2002, 2003, 2004, 2005, 2006 Red Hat, Inc.
> Copyright (C) 2004, 2005, 2006 IBM Corporation
> Copyright (C) 1999-2006 Hewlett-Packard Co
> Copyright (C) 2005, 2006 Fujitsu Limited
> Copyright (C) 2006 VA Linux Systems Japan K.K.
> Copyright (C) 2005 NEC Corporation
> Copyright (C) 1999, 2002 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 6.1
> Copyright 2004 Free Software Foundation, Inc.
> GDB 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.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB. Type "show warranty" for details.
> This GDB was configured as "i686-pc-linux-gnu"...
>
> WARNING: invalid linux_banner pointer: 756e694c
> crash: vmlinux and vmcore do not match!
>
Hi Vivek,
It has to do with how the linux_banner symbol is declared. The crash code
in question does this:
if (!(sp = symbol_search("linux_banner")))
error(FATAL, "linux_banner symbol does not exist?\n");
else if (sp->type == 'R')
linux_banner = symbol_value("linux_banner");
else
get_symbol_data("linux_banner", sizeof(ulong), &linux_banner);
if (!IS_KVADDR(linux_banner))
error(WARNING, "invalid linux_banner pointer: %lx\n",
linux_banner);
Up until 2.6.20-rc2 (apparently), if the linux_banner symbol
was in the readonly section ('R'), the string data was located
at the address of the linux_banner symbol. Otherwise, the
linux_banner symbol contained the address of the string data.
In your kernel, what does "nm -Bn vmlinux | grep linux_banner" show?
Maybe 'r' instead of 'R'?
In any case, it should be easy enough to deal with, because you
can see the string data is at the location of the linux_banner
symbol:
> WARNING: invalid linux_banner pointer: 756e694c
and that's the string data instead of a pointer to the string
data:
crash> ascii 756e694c
756e694c: Linu
crash>
Dave
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20070103/31a8efda/attachment.htm>
More information about the Crash-utility
mailing list