Re: [patch] "single step" atomic instruction sequences as a whole.

emin ak
2006-11-09T13:07:03Z

Mr Gilliam,

I'am very interested in one of your gdb patches about ""single step"
atomic instruction sequences as a whole". we have experienced serious
problems on atomic functions while debugging linux kernel and we have
found only your approach can solve the problem. I have applied it
againts latest cvs source but it is not working truly, it can detects
atomic inc. successfully but cant step over them and gives this error:
'breakpoint.c:7730: internal-error: remove_single_step_breakpoints: Assertion
`single_step_breakpoints[0] != NULL' failed.'

Mr Gilliam, if you can kindly guide me (or give a clue) to overcome
this problem, I can reorganize this patch and resend it to community

Thank you very much for your time.

Best Regards.
Emin Ak

2006/9/18, emin ak <eminak71@gmail.com>:
> Hi All;
> Is there aynone can succesfully apply or care about this patch. I have
> the same problem with my powerpc.
> I have checked the latest cvs gdb and I have found this patch did'nt
> merge into mainline. Will it commit later?
> Thanks. Best Regards.
> Emin Ak
> >Sorry forgot the logs.
> >--------------------test function.
> >#include <stdio.h>
> >#define __KERNEL__
> >#include <asm/atomic.h>
> >
> >atomic_t i;
> >int main(void)
> >{
> >printf("atomic_step_test\n");
> >atomic_set(&i,5);
> >printf("i=%d\n",atomic_read(&i));
> >atomic_dec(&i);
> >printf("i=%d\n",atomic_read(&i));
> >
> >
> >}
> >----------- gdb logs-----------
> >Breakpoint 2, main () at test.c:8
> >8 printf("atomic_step_test\n");
> >(gdb) next
> >9 atomic_set(&i,5);
> >(gdb) next
> >10 printf("i=%d\n",atomic_read(&i));
> >(gdb) next
> >151 :"=m" (v->counter), "=qm" (c)
> >(gdb) next
> >Stepping over an atomic sequence of instructions beginning at 0x10000484
> >breakpoint.c:7730: internal-error: remove_single_step_breakpoints:
> >Assertion `single_step_breakpoints[0] != NULL' failed.
> >A problem internal to GDB has been detected,
> >further debugging may prove unreliable.
> >Quit this debugging session? (y or n)
> >--------------------------
> >Regards.
> >Emre
> > Hello Mr Gilliam;
> > Firstly thank you very much for your patch about single stepping problem
> > on atomic instructions. In my opinion, this bug is very critical for
> > powerpc arch (especially while kernel debugging). We have experienced this
> > problem with both with h/w probe (BDI2000) and KGDB while debugging
> > kernel. I have applied your patch to latest gdb (20060911 taken from cvs)
> > and after correctting some fail warnings and test it on a PPC8540. It can
> > successfullt detects 'lwarx' instruction but can't step over the loop and
> > a little moment later, it gives an error message like 'breakpoint.c:7730:
> > internal-error: remove_single_step_breakpoints: Assertion
> > `single_step_breakpoints[0] != NULL' failed.'
> > I have corrected some patch error, I dont know, maybe this is the reason
> > of the problem. Here is the output of gdb and my test program that include
> > atomic_dec function.
> > Where can be the problem? And thank alot again, because atomic functions
> > are everywhere on kernel waiting to cause infinite loops..
> > Regards.
> > Emre KARA
> >
> >
> >
>