Re: Re: Crash-utility Digest, Vol 35, Issue 6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Durga Prasad wrote:
     > Hi Dave,
     > I attempted to try your suggested commands, but it tends to fail
    on my
     > machine:
     >
     >
     > libl041:/var/log/dump # crash -s vmlinux.sles10sp2.smp.x86_64
     > 2008-08-08-23\:27/vmcore
     > crash> struct ext3_xattr_search
     > struct: invalid data structure reference: ext3_xattr_search
     > crash> mod -s ext3
     >      MODULE       NAME                   SIZE  OBJECT FILE
     > ffffffff8856a500  ext3                 153360
     > /lib/modules/2.6.16.60-0.21-smp/kernel/fs/ext3/ext3.ko
     > crash> struct ext3_xattr_search
     > struct: invalid data structure reference: ext3_xattr_search
     > crash> struct ext3_xattr_info
     > struct: invalid data structure reference: ext3_xattr_info
     >
     >
     > crash> sys
     >       KERNEL: vmlinux.sles10sp2.smp.x86_64
     >     DUMPFILE: 2008-08-08-23:27/vmcore
     >         CPUS: 4
     >         DATE: Fri Aug  8 23:20:09 2008
     >       UPTIME: 01:31:48
     > LOAD AVERAGE: 2.48, 1.32, 0.56
     >        TASKS: 157
     >     NODENAME: libl041
     >      RELEASE: 2.6.16.60-0.21-smp
     >      VERSION: #1 SMP Tue May 6 12:41:02 UTC 2008
     >      MACHINE: x86_64  (1995 Mhz)
     >       MEMORY: 3.9 GB
     >        PANIC: "Oops: 0000 [1] SMP " (check log for details)
     >
     > crash version: 4.0-4.10   gdb version: 6.1
     >
     > I tried the same after compiling and installing the latest crash
    version
     > (crash version: 4.0-6.3   gdb version: 6.1) with no difference in
    results.
     >
     > What would you suggest?
     >
     > Thanks
     > Durga

    The first thing to verify is whether those two structures existed
    in the 2.6.16-era timeframe?

    Dave


    The 2.6.16.60-021 kernel DO have the said structures.

OK, can you confirm that the ext3.ko file has debuginfo data in it?

I'm not familiar with how SUSE handles kernel modules and their debuginfo data.
But, for example, RHEL kernels require that an associated kernel-debuginfo package
be installed, which supplies both the vmlinux file as well as the "partner" .ko.debug
files for each kernel module.

So for example:

  crash> mod -s ext3
   MODULE   NAME                  SIZE  OBJECT FILE
  e08cd080  ext3                123593  /lib/modules/2.6.18-88.el5/kernel/fs/ext3/ext3.ko
  crash>

and the tools that use a /lib/modules/.../*.ko file know how to link it to its
associated *.ko.debug debuginfo piece:

  $ ls -l /lib/modules/2.6.18-88.el5/kernel/fs/ext3/ext3.ko
  -rwxr--r-- 1 root root 145544 Apr  1 20:02 /lib/modules/2.6.18-88.el5/kernel/fs/ext3/ext3.ko
  $ ls -l /usr/lib/debug/lib/modules/2.6.18-88.el5/kernel/fs/ext3/ext3.ko.debug
  -rwxr--r-- 1 root root 1676292 Apr  1 20:02 /usr/lib/debug/lib/modules/2.6.18-88.el5/kernel/fs/ext3/ext3.ko.debug*
  $

If the relevant debuginfo package was not installed, the "mod" command would
do and look the same as above, but there would be no debuginfo data available
for the ext3 module.  (It would just pull extra symbol values from the
ext3.ko file if available)

So what does gdb alone show?  With the kernel debuginfo package installed,
I see this:

  $ gdb /lib/modules/2.6.18-88.el5/kernel/fs/ext3/ext3.ko
  GNU gdb Red Hat Linux (6.5-37.el5rh)
  Copyright (C) 2006 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 "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1".

  (gdb) ptype struct ext3_xattr_search
  type = struct ext3_xattr_search {
      struct ext3_xattr_entry *first;
      void *base;
      void *end;
      struct ext3_xattr_entry *here;
      int not_found;
  }
  (gdb)

But if I move the associated ext3.ko.debug out of the way -- to simulate that the
debuginfo package is not installed -- gdb indicates "(no debugging symbols found)":

  $ mv /usr/lib/debug/lib/modules/2.6.18-88.el5/kernel/fs/ext3/ext3.ko.debug /tmp
  $ gdb /lib/modules/2.6.18-88.el5/kernel/fs/ext3/ext3.ko
  GNU gdb Red Hat Linux (6.5-37.el5rh)
  Copyright (C) 2006 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 "i386-redhat-linux-gnu"...(no debugging symbols found)
  Using host libthread_db library "/lib/libthread_db.so.1".

  (gdb) ptype struct ext3_xattr_search
  No struct type named ext3_xattr_search.
  (gdb)

Dave



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

[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux