[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