2009-04-05 12:48:31

by Peter Hallberg

[permalink] [raw]
Subject: Intepreting an oops


How does one translate the offset in the function to a line number in the source code?
[ 218.418473] Call Trace:
[ 218.418484] [] :nnpfs:nnpfs_writepage+0xab/0x230
[ 218.418498] [] __writepage+0xa/0x30
[ 218.418503] [] write_cache_pages+0x250/0x340
[ 218.418509] [] __writepage+0x0/0x30
[ 218.418522] [] generic_file_aio_write+0x6f/0xd0
[ 218.418540] [] do_writepages+0x2b/0x40
[ 218.418545] [] __filemap_fdatawrite_range+0x52/0x60
[ 218.418558] [] filemap_write_and_wait+0x35/0x50
[ 218.418570] [] :nnpfs:nnpfs_fsync_int+0x47/0x1b0
[ 218.418599] [] :nnpfs:nnpfs_release_file+0x9d/0xc0
[ 218.418608] [] filp_close+0x33/0x90
[ 218.418615] [] sys_close+0x9f/0x100
[ 218.418622] [] system_call+0x7e/0x83


_________________________________________________________________
Hitta k?rleken nu i v?r!
http://dejting.se.msn.com/channel/index.aspx?trackingid=1002952-


2009-04-05 13:01:42

by Avi Kivity

[permalink] [raw]
Subject: Re: Intepreting an oops

Peter Hallberg wrote:
> How does one translate the offset in the function to a line number in the source code?
> [ 218.418473] Call Trace:
> [ 218.418484] [] :nnpfs:nnpfs_writepage+0xab/0x230
>

You can use 'objdump -Sr nnpfs.ko' and look for the address of
nnpfs_writepage, plus 0xab.

--
error compiling committee.c: too many arguments to function

2009-04-05 14:43:31

by Bob Copeland

[permalink] [raw]
Subject: Re: Intepreting an oops

On Sun, Apr 5, 2009 at 9:01 AM, Avi Kivity <[email protected]> wrote:
> Peter Hallberg wrote:
>>
>> How does one translate the offset in the function to a line number in the
>> source code?
>> [ ?218.418473] Call Trace:
>> [ ?218.418484] ?[] :nnpfs:nnpfs_writepage+0xab/0x230
>>
>
> You can use 'objdump -Sr nnpfs.ko' and look for the address of
> nnpfs_writepage, plus 0xab.

I use the above sometimes, also you can do:

gdb nnpfs.ko
gdb> l *(nnpfs_writepage+0xab)

Documentation/oops-tracing.txt has some helpful tips.

--
Bob Copeland %% http://www.bobcopeland.com

2009-04-05 15:17:18

by Arjan van de Ven

[permalink] [raw]
Subject: Re: Intepreting an oops

On Sun, 5 Apr 2009 14:48:19 +0200
Peter Hallberg <[email protected]> wrote:

>
> How does one translate the offset in the function to a line number in
> the source code?

you take the whole oops and use the scripts/markup_oops.pl script
to pipe it through.. and it gives you this information quite nicely.

--
Arjan van de Ven Intel Open Source Technology Centre
For development, discussion and tips for power savings,
visit http://www.lesswatts.org

2009-04-07 08:50:37

by Michal Hocko

[permalink] [raw]
Subject: Re: Intepreting an oops

On Sun 05-04-09 14:48:19, Peter Hallberg wrote:
>
> How does one translate the offset in the function to a line number in the source code?
> [ 218.418473] Call Trace:
> [ 218.418484] [] :nnpfs:nnpfs_writepage+0xab/0x230
> [ 218.418498] [] __writepage+0xa/0x30
> [ 218.418503] [] write_cache_pages+0x250/0x340
> [ 218.418509] [] __writepage+0x0/0x30
> [ 218.418522] [] generic_file_aio_write+0x6f/0xd0
> [ 218.418540] [] do_writepages+0x2b/0x40
> [ 218.418545] [] __filemap_fdatawrite_range+0x52/0x60
> [ 218.418558] [] filemap_write_and_wait+0x35/0x50
> [ 218.418570] [] :nnpfs:nnpfs_fsync_int+0x47/0x1b0
> [ 218.418599] [] :nnpfs:nnpfs_release_file+0x9d/0xc0
> [ 218.418608] [] filp_close+0x33/0x90
> [ 218.418615] [] sys_close+0x9f/0x100
> [ 218.418622] [] system_call+0x7e/0x83
>

addr2line is also an option
--
Michal Hocko
L3 team
SUSE LINUX s.r.o.
Lihovarska 1060/12
190 00 Praha 9
Czech Republic