[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