[PATCH] scripts: improve the decodecode script - Kernel

This is a discussion on [PATCH] scripts: improve the decodecode script - Kernel ; 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 ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: [PATCH] scripts: improve the decodecode script

  1. [PATCH] scripts: improve the decodecode script

    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~
    --
    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
    --
    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/

  2. Re: [PATCH] scripts: improve the decodecode script

    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
    >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~


    what is $T.aaa[5~ ? :-)

    And why not call cleanup() here?

    --
    "Sometimes the only way to stay sane is to go a little crazy."

    --
    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/

  3. Re: [PATCH] scripts: improve the decodecode script

    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/

  4. Re: [PATCH] scripts: improve the decodecode script

    On Wed, 29 Oct 2008 17:22:26 +0000
    Américo Wang 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
    > >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/ > >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
    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..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' >> $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
    --
    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/

  5. Re: [PATCH] scripts: improve the decodecode script

    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 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
    >> >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/ >> >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


    --
    "Sometimes the only way to stay sane is to go a little crazy."

    --
    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/

+ Reply to Thread