[Crash-utility] crash: cannot determine length of symbol: log_end

Dave Anderson anderson at redhat.com
Wed Jun 6 19:39:58 UTC 2012



----- Original Message -----
> Hey David,
> 
> I just upgraded a dev box to v3.5-rc1 and now crash doesn't work.  Have
> you seen this before?
> 
> crash 6.0.7
> Copyright (C) 2002-2012  Red Hat, Inc.
> Copyright (C) 2004, 2005, 2006, 2010  IBM Corporation
> Copyright (C) 1999-2006  Hewlett-Packard Co
> Copyright (C) 2005, 2006, 2011, 2012  Fujitsu Limited
> Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
> Copyright (C) 2005, 2011  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 (GDB) 7.3.1
> Copyright (C) 2011 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "i686-pc-linux-gnu"...
> 
>   SYSTEM MAP: /boot/System.map-3.5.0-rc1-1.2-desktop
> DEBUG KERNEL: /root/xfs/vmlinux
>     DUMPFILE: vmcore
>         CPUS: 4
>         DATE: Tue Jun  5 15:13:35 2012
>       UPTIME: 01:58:35
> LOAD AVERAGE: 2.06, 1.61, 1.77
>        TASKS: 90
>     NODENAME: nfs7
>      RELEASE: 3.5.0-rc1-1.2-desktop
>      VERSION: #20 SMP PREEMPT Tue Jun 5 12:56:22 CDT 2012
>      MACHINE: i686  (2399 Mhz)
>       MEMORY: 6 GB
>        PANIC:
> crash: cannot determine length of symbol: log_end
> 
> 
> 
> I had been using crash 6.0.6 on this machine on a regular basis until
> upgrading the kernel.  I expect if I go back to the older kernel it will
> work again.  Any suggestions?  More info I can provide?
> 
> Thanks,
> Ben

Right, this recent upstream kernel commit has re-designed the log buffer
scheme:

  commit 7ff9554bb578ba02166071d2d487b7fc7d860d62
  Author: Kay Sievers <kay at vrfy.org>
  Date:   Thu May 3 02:29:13 2012 +0200 

  printk: convert byte-buffer to variable-length record buffer

Eventually I, or somebody on the crash-utility mailing list, will get around
to updating crash to handle the new scheme.

The only thing you can do to work around it for now is to hack kernel.c
and just force the dump_log() function to return immediately:

  void
  dump_log(int msg_level)
  {
          int i, len, tmp;
          ulong log_buf, log_end;
          char *buf;
          char last;
          ulong index;
          struct syment *nsp;
          int log_wrap, loglevel, log_buf_len;

+         return;

          if (symbol_exists("log_buf_len")) {
                  get_symbol_data("log_buf_len", sizeof(int), &log_buf_len);
                  get_symbol_data("log_buf", sizeof(ulong), &log_buf);
          } else {
  ...

Dave




More information about the Crash-utility mailing list