[Crash-utility] crash warnings

Dave Anderson anderson at redhat.com
Thu Apr 27 17:21:54 UTC 2006


Badari Pulavarty wrote:

> On Thu, 2006-04-27 at 12:21 -0400, Dave Anderson wrote:
> > Badari,
> >
> > What happens when you disassemble sys_read() on a live
> > system running that particular kernel?  Use "dis sys_read" as the
> > crash command.
> >
> > Thanks,
> >    Dave
>
> Dave,
>
> crash shows wrong dis-assembly for even live machine...
>
> Thanks,
> Badari
>
> elm3a242:~/crash-4.0-2.23 # ./crash /usr/src/linux/vmlinux
>
> crash 4.0-2.23
> 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.
>
> 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"...
>
>   SYSTEM MAP: /usr/src/linux/System.map
> DEBUG KERNEL: /usr/src/linux/vmlinux (2.6.16-20-smp)

Strange -- why is it even using /usr/src/linux/System.map?
You didn't enter it on the boot command line, and so I believe
the only way that it would possibly be set would be by the
find_booted_system_map() function -- which only would be
called by match_proc_version() when the vmlinux file doesn't
match the live system.

What happens when you do this:

  $ strings /usr/src/linux/vmlinux | grep "Linux ver"

  $ cat /proc/version

Are the outputs identical?

Dave


>
>     DUMPFILE: /dev/mem
>         CPUS: 2
>         DATE: Thu Apr 27 02:06:52 2006
>       UPTIME: 16:29:16
> LOAD AVERAGE: 0.07, 0.02, 0.00
>        TASKS: 64
>     NODENAME: elm3a242
>      RELEASE: 2.6.16-20-smp
>      VERSION: #1 SMP Mon Apr 10 04:51:13 UTC 2006
>      MACHINE: x86_64  (3000 Mhz)
>       MEMORY: 4.6 GB
>          PID: 12798
>      COMMAND: "crash"
>         TASK: ffff8101235e37d0  [THREAD_INFO: ffff810118742000]
>          CPU: 0
>        STATE: TASK_RUNNING (ACTIVE)
>
> crash> dis sys_read
> 0xffffffff8017b991 <sys_read>:  add    %cl,0xffffffffffffff83(%rax)
> 0xffffffff8017b994 <sys_read+3>:        (bad)
> 0xffffffff8017b995 <sys_read+4>:        sbb    %cl,0xffffffffffffff89(%
> rax)
> 0xffffffff8017b998 <sys_read+7>:        callq  0xffffffffdc5916f8
> 0xffffffff8017b99d <sys_read+12>:       pop    %r13
> 0xffffffff8017b99f <sys_read+14>:       retq
> 0xffffffff8017b9a0 <sys_read+15>:
>     mov    1862306(%rip),%eax        # 0xffffffff80342448 <files_stat+8>
> 0xffffffff8017b9a6 <sys_read+21>:       retq
> 0xffffffff8017b9a7 <sys_read+22>:       push   %rbx
> 0xffffffff8017b9a8 <sys_read+23>:       cmp    %rdi,(%rdi)
> 0xffffffff8017b9ab <sys_read+26>:       mov    %rdi,%rbx
> 0xffffffff8017b9ae <sys_read+29>:       je     0xffffffff8017b9db
> <sys_read+74>
> 0xffffffff8017b9b0 <sys_read+31>:       mov    $0xffffffff80456b80,%rdi
> 0xffffffff8017b9b7 <sys_read+38>:
>     callq  0xffffffff802d0aad <__down_interruptible+75>
> 0xffffffff8017b9bc <sys_read+43>:       mov    (%rbx),%rdx
> 0xffffffff8017b9bf <sys_read+46>:       mov    0x8(%rbx),%rax
> 0xffffffff8017b9c3 <sys_read+50>:       mov    %rax,0x8(%rdx)
> 0xffffffff8017b9c7 <sys_read+54>:       mov    %rdx,(%rax)
> 0xffffffff8017b9ca <sys_read+57>:       mov    %rbx,0x8(%rbx)
> 0xffffffff8017b9ce <sys_read+61>:       mov    %rbx,(%rbx)
> 0xffffffff8017b9d1 <sys_read+64>:
>
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility




More information about the Crash-utility mailing list