lkml.org 
[lkml]   [2002]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: Improved ksymoops output
Date
On 13 February 2002 08:15, Russell King wrote:
> > Trace; c0130e00 <__get_free_pages(mm/page_alloc.c)+10/1c>
> > Trace; c01459cf <__pollwait(fs/select.c:viro@math.psu.edu,tester3@host.org)+33/90>
>
> I don't call this format "better" nor "improved".
>
> It might be better to have something like this following at the end:
>
> File; __get_free_pages: mm/page_alloc.c
> File; __pollwait: fs/select.c
> File; do_select: fs/select.c
> File; process_timeout: kernel/sched.c
> File; restore_sigcontext: arch/i386/kernel/signal.c
> File; sock_poll: net/socket.c
> File; sys_gettimeofday: kernel/time.c
> File; sys_select: fs/select.c
> File; sys_setitimer: kernel/itimer.c
>
> Maintainer; fs/select.c <viro@math.psu.edu> <tester3@host.org>

After some thought I prefer file names on the "Trace;" lines.
"Maintainer;" is fine.

I have better script which does exactly this.
It does not use modified System.map.
It requires func2file.map and email2pattern.map.
Works as a filter for ksymoops. Sample output:

# ksymoops | add_file_email
Call Trace: [<c0130e00>] [<c01459cf>] [<c0113ee7>] [<c0113e38>] [<c021049f>]
[<c0145d05>] [<c0146002>] [<c010644e>] [<c011b432>] [<c011b7e3>] [<c01071ff>]
Warning (Oops_read): Code line not seen, dumping what data is available

Trace; c0130e00 <__get_free_pages+10/1c> mm/page_alloc.c
Trace; c01459cf <__pollwait+33/90> fs/select.c
Trace; c0113ee7 <schedule_timeout+4f/98> kernel/sched.c
Trace; c0113e38 <process_timeout+0/60> kernel/sched.c
Trace; c021049f <sock_poll+1f/24> net/socket.c
Trace; c0145d05 <do_select+209/214> fs/select.c
Trace; c0146002 <sys_select+2d2/620> fs/select.c
Trace; c010644e <restore_sigcontext+126/138> arch/i386/kernel/signal.c
Trace; c011b432 <sys_setitimer+76/150> kernel/itimer.c
Trace; c011b7e3 <sys_gettimeofday+1b/17c> kernel/time.c
Trace; c01071ff <system_call+33/38>


1 warning issued. Results may not be reliable.

Maintainer; fs/select.c:tester3@host.org,viro@math.psu.edu

Script is below
--
vda

add_file_email
==============
#!/usr/bin/python

import sys
import string
import re

#
# Build func->file dictionary
#
f=open('func2file.map', 'r')
func2file={}
l=f.readline()
while l <> '':
l=l[:len(l)-1]
t=string.split(l)
func2file[t[0]]=t[1]
l=f.readline()

#
# Read email:pattern list
#
f=open('email2pattern.map', 'r')
people=[]
l=f.readline()
while l <> '':
l=l[:len(l)-1]
people.append(l)
l=f.readline()

#
# Read stdin, add file names and email addresses to Trace; lines
#
f=sys.stdin
l=f.readline()
maint={}
while l <> '':
l=l[:len(l)-1]
if l[:6]=='Trace;':
#print '>'+l[:6]+'<',l[:6]=='Trace;'
func=string.split(string.split(l,'<')[1],'+')[0]
#print func
if func2file.has_key(func):
file=func2file[func]
l=l+'\t'+file
for p in people:
t=string.split(p,':')
email=t[0]
pattern=t[1]
expr=re.compile(pattern)
if expr.match(file):
if maint.has_key(file):
maint[file][email]=''
else:
maint[file]={email:''}
print l
l=f.readline()

#
# Print "Maintainer; file:email,email" lines
#
print
for m in maint.keys():
print 'Maintainer;',
l=m+':'
for e in maint[m].keys():
l=l+e+','
print l[:len(l)-1]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:24    [W:0.048 / U:7.568 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site