Bernhard Walle wrote:
Hello,

* Dave Anderson <anderson@redhat.com> [2006-11-08 22:26]:
> Olaf Hering wrote:
> > On Wed, Nov 08, Dave Anderson wrote:
> > > Olaf Hering wrote:
> > >
> > > > crash 4.0-3.9 can not read a dump file from an ia64 box running 2.6.5.
> > > > Is this supposed to work?
> > > >
> > > > crash -s  boot/System.map-2.6.5-7.267-sn2 boot/Kerntypes-2.6.5-7.267-sn2 dump.3
> > >
> > > Well, if it did work, it would be news to me.  I've certainly never run crash
> > > with a "Kerntypes" file as a substitute for a -g built vmlinux file.
> >
> > Thats all we have right now. And sadly, I have been told that gcc will
> > generate different asm depending on what host the kernel is compiled
> > (memory config etc.). So getting the exact vmlinux again may be a
> > challenge with gcc3.2.
>
> Well, that's always been the case, and that's OK.  In that case,
> all you have to do is compile the identical kernel source code
> with -g, but also pass the System.map file of the "real" dumped
> vmlinux on the command line, as in:
>
>  # crash vmlinux-rebuilt-with-g System.map-of-dumped-vmlinux dumpfile
>
> That's the sole purpose of the System.map argument, which should
> *only* be used in such a case.

I get this output here:

     # crash ./vmlinux-2.6.5-7.282-debug map.4 dump.4

    crash 4.0-53.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.

    crash: map.4: not a supported file format

    Usage:
      crash [-h [opt]][-v][-s][-i file][-d num] [-S] [mapfile] [namelist] [dumpfile]

    Enter "crash -h" for details.

./vmlinux-2.6.5-7.282-debug is a uncompressed kernel image without
debug information (IA 64), map.4 is a normal System.map file and
dump.4 is the LKCD dump file.
 

"vmlinux-2.6.5-7.282-debug" must have debug information right?  Crash
will not work without at least one debug-full vmlinux file on the command
line, and since it works without the map.4, it must be debug-full.
 
Without the map.4 argument, crash doesn't complain about the file
formats.
...but the virtual addresses probably don't line up completely?
 

Any hints? Thanks!
 

Yes, the "map.4" file did not return successfully from the
is_system_map() function in symbols.c.  That function sanity-checks
the first 100 entries in the file to verify that there are 3 entries
in each line, that the the first entry contains a 64-bit hexadecimal
address, and that the second field contains a single character.

For example, this is an example of a 2.4 ia64 kernel
System.map file:

#  head /boot/System.map
0000000004407f20 A phys_start
e000000000000000 A v
e000000004400000 A _stext
e000000004400000 A _text
e000000004400000 T ia64_ivt
e000000004400000 t vhpt_miss
e000000004400400 t itlb_miss
e000000004400410 t itlb_fault
e000000004400800 t dtlb_miss
e000000004400810 t dtlb_fault
#

What does "head -100 map.4." show?

Dave