* [PATCH] scripts: improve the decodecode script @ 2008-10-29 17:00 Arjan van de Ven 2008-10-29 17:22 ` Américo Wang 2008-10-29 17:49 ` Randy Dunlap 0 siblings, 2 replies; 5+ messages in thread From: Arjan van de Ven @ 2008-10-29 17:00 UTC (permalink / raw) To: rdunlap; +Cc: akpm, linux-kernel >From 80bf813c2bdc3538d823bb59c2611b40673e395a Mon Sep 17 00:00:00 2001 From: Arjan van de Ven <arjan@linux.intel.com> 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 <arjan@linux.intel.com> --- 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' | 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~ -- 1.5.5.1 -- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] scripts: improve the decodecode script 2008-10-29 17:00 [PATCH] scripts: improve the decodecode script Arjan van de Ven @ 2008-10-29 17:22 ` Américo Wang 2008-10-29 19:20 ` Arjan van de Ven 2008-10-29 17:49 ` Randy Dunlap 1 sibling, 1 reply; 5+ messages in thread From: Américo Wang @ 2008-10-29 17:22 UTC (permalink / raw) To: Arjan van de Ven; +Cc: rdunlap, akpm, linux-kernel On Wed, Oct 29, 2008 at 10:00:45AM -0700, Arjan van de Ven wrote: >From 80bf813c2bdc3538d823bb59c2611b40673e395a Mon Sep 17 00:00:00 2001 >From: Arjan van de Ven <arjan@linux.intel.com> >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 <arjan@linux.intel.com> >--- > 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' | 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~ what is $T.aaa[5~ ? :-) And why not call cleanup() here? -- "Sometimes the only way to stay sane is to go a little crazy." ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] scripts: improve the decodecode script 2008-10-29 17:22 ` Américo Wang @ 2008-10-29 19:20 ` Arjan van de Ven 2008-10-31 11:38 ` Américo Wang 0 siblings, 1 reply; 5+ messages in thread From: Arjan van de Ven @ 2008-10-29 19:20 UTC (permalink / raw) To: Américo Wang; +Cc: rdunlap, akpm, linux-kernel On Wed, 29 Oct 2008 17:22:26 +0000 Américo Wang <xiyou.wangcong@gmail.com> wrote: > On Wed, Oct 29, 2008 at 10:00:45AM -0700, Arjan van de Ven wrote: > >From 80bf813c2bdc3538d823bb59c2611b40673e395a Mon Sep 17 00:00:00 > >2001 From: Arjan van de Ven <arjan@linux.intel.com> > >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 <arjan@linux.intel.com> > >--- > > 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' | > >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~ > > what is $T.aaa[5~ ? :-) > > And why not call cleanup() here? good point update below >From 232b53efebc0bdba0be17dd0a695494faf3fdb60 Mon Sep 17 00:00:00 2001 From: Arjan van de Ven <arjan@linux.intel.com> 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 <arjan@linux.intel.com> --- scripts/decodecode | 32 ++++++++++++++++++++++---------- 1 files changed, 22 insertions(+), 10 deletions(-) diff --git a/scripts/decodecode b/scripts/decodecode index 235d393..4b00647 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' | 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 +cleanup -- 1.5.5.1 -- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] scripts: improve the decodecode script 2008-10-29 19:20 ` Arjan van de Ven @ 2008-10-31 11:38 ` Américo Wang 0 siblings, 0 replies; 5+ messages in thread From: Américo Wang @ 2008-10-31 11:38 UTC (permalink / raw) To: Arjan van de Ven; +Cc: Américo Wang, rdunlap, akpm, linux-kernel On Wed, Oct 29, 2008 at 12:20:02PM -0700, Arjan van de Ven wrote: >On Wed, 29 Oct 2008 17:22:26 +0000 >Américo Wang <xiyou.wangcong@gmail.com> wrote: > >> On Wed, Oct 29, 2008 at 10:00:45AM -0700, Arjan van de Ven wrote: >> >From 80bf813c2bdc3538d823bb59c2611b40673e395a Mon Sep 17 00:00:00 >> >2001 From: Arjan van de Ven <arjan@linux.intel.com> >> >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 <arjan@linux.intel.com> >> >--- >> > 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' | >> >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~ >> >> what is $T.aaa[5~ ? :-) >> >> And why not call cleanup() here? > >good point > >update below > Looks good, thanks! If you need, add: Reviewed-by: WANG Cong <wangcong@zeuux.org> -- "Sometimes the only way to stay sane is to go a little crazy." ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] scripts: improve the decodecode script 2008-10-29 17:00 [PATCH] scripts: improve the decodecode script Arjan van de Ven 2008-10-29 17:22 ` Américo Wang @ 2008-10-29 17:49 ` Randy Dunlap 1 sibling, 0 replies; 5+ messages in thread From: Randy Dunlap @ 2008-10-29 17:49 UTC (permalink / raw) To: Arjan van de Ven; +Cc: akpm, linux-kernel 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 <arjan@linux.intel.com> > 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 <arjan@linux.intel.com> > --- > 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' | 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 ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-10-31 11:38 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2008-10-29 17:00 [PATCH] scripts: improve the decodecode script Arjan van de Ven 2008-10-29 17:22 ` Américo Wang 2008-10-29 19:20 ` Arjan van de Ven 2008-10-31 11:38 ` Américo Wang 2008-10-29 17:49 ` Randy Dunlap
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
Powered by JetHome