Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754689AbYJ2Rtq (ORCPT ); Wed, 29 Oct 2008 13:49:46 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753837AbYJ2Rti (ORCPT ); Wed, 29 Oct 2008 13:49:38 -0400 Received: from xenotime.net ([72.52.64.118]:36424 "HELO xenotime.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1753027AbYJ2Rth convert rfc822-to-8bit (ORCPT ); Wed, 29 Oct 2008 13:49:37 -0400 Date: Wed, 29 Oct 2008 10:49:20 -0700 From: Randy Dunlap To: Arjan van de Ven Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] scripts: improve the decodecode script Message-Id: <20081029104920.e20e316e.rdunlap@xenotime.net> In-Reply-To: <20081029100045.04b208f7@infradead.org> References: <20081029100045.04b208f7@infradead.org> Organization: YPO4 X-Mailer: Sylpheed 2.5.0 (GTK+ 2.12.0; x86_64-unknown-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3342 Lines: 97 On Wed, 29 Oct 2008 10:00:45 -0700 Arjan van de Ven wrote: > From 80bf813c2bdc3538d823bb59c2611b40673e395a Mon Sep 17 00:00:00 2001 > From: Arjan van de Ven > Date: Wed, 29 Oct 2008 09:57:07 -0700 > Subject: [PATCH] scripts: improve the decodecode script > > kerneloops.org has been using an improved "decodecode" script, > specifically it has a special marker that shows which line > in the assembly the oops happened at, like this: > > 20: 83 e0 03 and $0x3,%eax > 23: 09 d8 or %ebx,%eax > 25: 85 db test %ebx,%ebx > 27: 89 02 mov %eax,(%edx) > 29: 74 0f je 0x3a > 2b:* 3b 73 04 cmp 0x4(%ebx),%esi <-- trapping instruction > 2e: 75 05 jne 0x35 > 30: 89 53 04 mov %edx,0x4(%ebx) > 33: eb 07 jmp 0x3c > 35: 89 53 08 mov %edx,0x8(%ebx) > > this patch updates the kernel copy to also have this functionality. > > Signed-off-by: Arjan van de Ven > --- > scripts/decodecode | 32 ++++++++++++++++++++++---------- > 1 files changed, 22 insertions(+), 10 deletions(-) > > diff --git a/scripts/decodecode b/scripts/decodecode > index 235d393..dd9bf17 100755 > --- a/scripts/decodecode > +++ b/scripts/decodecode > @@ -7,7 +7,7 @@ > # AFLAGS=--32 decodecode < 386.oops > > cleanup() { > - rm -f $T $T.s $T.o > + rm -f $T $T.s $T.o $T.oo $T.aa $T.aaa > exit 1 > } > > @@ -44,21 +44,33 @@ if [ $marker -eq 0 ]; then > marker=`expr index "$code" "\("` > fi > > +touch $T.oo > if [ $marker -ne 0 ]; then > - beforemark=`echo "$code" | cut -c-$((${marker} - 1))` > + echo All code >> $T.oo > + echo ======== >> $T.oo > + beforemark=`echo "$code"` > echo -n " .byte 0x" > $T.s > - echo $beforemark | sed -e 's/ /,0x/g' >> $T.s > - as $AFLAGS -o $T.o $T.s > - objdump -S $T.o > - rm $T.o $T.s > + echo $beforemark | sed -e 's/ /,0x/g' | sed -e 's///g' >> $T.s > + as $AFLAGS -o $T.o $T.s &> /dev/null > + objdump -S $T.o | grep -v "/tmp" | grep -v "Disassembly" | grep -v "\.text" | grep -v "^$" &> $T.ooo > + cat $T.ooo >> $T.oo > + rm -f $T.o $T.s $T.ooo > > # and fix code at-and-after marker > code=`echo "$code" | cut -c$((${marker} + 1))-` > fi > - > +echo Code starting with the faulting instruction > $T.aa > +echo =========================================== >> $T.aa > code=`echo $code | sed -e 's/ [<(]/ /;s/[>)] / /;s/ /,0x/g'` > echo -n " .byte 0x" > $T.s > echo $code >> $T.s > -as $AFLAGS -o $T.o $T.s > -objdump -S $T.o > -rm $T $T.s $T.o > +as $AFLAGS -o $T.o $T.s &> /dev/null > +objdump -S $T.o | grep -v "Disassembly" | grep -v "/tmp" | grep -v "\.text" | grep -v "^$" &> $T.aaa > +cat $T.aaa >> $T.aa > + > +faultline=`cat $T.aaa | head -1 | cut -d":" -f2` > + > +cat $T.oo | sed -e "s/\($faultline\)/\*\1 <-- trapping instruction/g" > +echo > +cat $T.aa > +rm -f $T.o $T.s $T $T.oo $T.aa $T.aaa[5~ > -- Looks good with the exception of Am?rico's comments. Thanks. --- ~Randy -- 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/