Hi,
Thanks for the help and guidance, I downloaded and ran the latest version of crash. it gives me the following output:

crash 4.0-7.4
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008  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, 2007  VA Linux Systems Japan K.K.
Copyright (C) 2005  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 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 "x86_64-unknown-linux-gnu"...(no debugging symbols found)...

crash: /boot/vmlinux-syms-2.6.16.13-xen: no debugging data available

On running gdb /boot/vmlinux-syms-2.6.16.13-xen i got the following output:

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 "x86_64-unknown-linux-gnu"...(no debugging symbols found)...

crash: /boot/vmlinux-syms-2.6.16.13-xen: no debugging data available


GNU gdb Red Hat Linux (6.3.0.0-1.122rh)
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 "x86_64-redhat-linux-gnu"...
(no debugging symbols found)
Using host libthread_db library "/lib64/libthread_db.so.1".

(gdb)

The common point being debug info was not found. But when running crash it says GDB was configured as "x86_64-unknown-linux-gnu" and when running only gdb it says  GDB was configured as "x86_64-redhat-linux-gnu"

This may be a stupid question... but am I right in assuming that crash will now run if I compile xen again with -g option ?

Thanks,

Aditya Krishnan 

On Mon, Nov 17, 2008 at 10:24 AM, Dave Anderson <anderson@redhat.com> wrote:

----- "ADITYA KRISHNAN" <akrishn7@ncsu.edu> wrote:

> Hi,
>
>
> I am new to crash utility. I want to run crash ( crash 4.0-2.18.1) on
> dual-core AMD Opteron (x86_64) cluster. The cluster nodes are running
> xen 3.0 the proc/version gives the following output : 2.6.16.13-xen
> i am running xen 3.0 which has been installed on fc5.
>

If the crash version 4.0-2.18.1 you are using is the Red Hat
version 4.0-2.18.1, then it is well over 2 years old. I don't
think that xen kernels were even supported back then?

(see http://people.redhat.com/anderson/crash.changelog.html)

In any case, please try the latest version by downloading
crash-4.0-7.4.tar.gz from http://people.redhat.com/anderson,
and build it like this:

 # tar xvzmf crash-4.0-7.4.tar.gz
 ...
 # cd crash-4.0-7.4
 # make
 ...
 #

If there is a bug here, then I need to know if it exists in
the latest version.  I don't debug old versions.

>
> I guess the kernel was not built with debugging info on

I don't think so.  If that were true, it would have failed much
earlier with a message like:

 vmlinux-syms-2.6.16.13-xen: no debugging data available

And given that the name of the file is "vmlinux-syms-2.6.16.13-xen"
the "syms" presumably implies it's got debugging data in it.
But I don't know how it works on whatever distribution you're
running.  It seems strange that a "vmlinux-syms-2.6.16.13-xen"
with full debuginfo data would be located in /boot?

>
>
> Running crash gives the following output:
>
>
>
> crash 4.0-2.18.1
> 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 Fujitsu Limited
> 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.
>
>
> WARNING: cannot read linux_banner string
> crash: /boot/vmlinux-syms-2.6.16.13-xen and /dev/mem do not match!
>
>
> I read up on the previous threads that this is because /dev/mem
> returns all zereos.
> I think I need something like a patch for installing the /dev/crash
> module. I am new to this so can anyone help me out with a detailed
> procedure of what needs to be done.
>

I wouldn't think the /dev/crash driver is necessary on a kernel of
that vintage.  Only Red Hat kernels from RHEL4 onward and upstream
kernels with the CONFIG_STRICT_DEVMEM configuration turned on would
require an alternative like the Red Hat /dev/crash driver.

But that being said, the "cannot read linux_banner string" means
that either one of these two things happened:

 1. the read() from /dev/mem failed, or
 2. the read() from /dev/mem worked, but returned zeroes.

I can't tell which happened, but I'm guessing the latter, because
there are a handful of other read()'s done from /dev/mem before that
particular one is done, which is trying to access the linux_banner string.
It may be due to an incorrect access to the linux_banner string, which has
changed over the years.  In some kernels, the "linux_banner" symbol
is the address of the actual string, whereas on others it contains
a pointer to the actual string.  The crash utility (*now*) has
this code segment in its verify_version() function:

       if (!(sp = symbol_search("linux_banner")))
               error(FATAL, "linux_banner symbol does not exist?\n");
       else if ((sp->type == 'R') || (sp->type == 'r'))
               linux_banner = symbol_value("linux_banner");
       else
               get_symbol_data("linux_banner", sizeof(ulong), &linux_banner);

If you do an "nm -Bn vmlinux-syms-2.6.16.13-xen | grep linux_banner",
what do you see?  If it's type R or r, then crash reads directly from
that symbol value address.  Otherwise it reads the contents of the
that symbol value address, and reads the string from there.
You can also try "gdb vmlinux-syms-2.6.16.13-xen", from which
you can determine whether there's a level of indirection there.

But I'm blanking out w/respect to your "previous threads that this is
because /dev/mem returns all zeroes" statement.  I'm not aware (at
least any more) of any case where /dev/mem would return zeroes instead
of failing the read() call itself?  Can you point me to those
threads?

But again -- I'm not interested in issues with older versions
of crash.  Please upgrade to the latest version, and if that
doesn't work, run it as "crash -d3 /boot/vmlinux-syms-2.6.16.13-xen",
and there will be a bunch of debug output displayed that may help nail
it down.

Dave


--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility