sysdep/i386/backtrace.h infinite loop?
Andrew Haley
aph@redhat.com
Wed Feb 21 11:57:00 GMT 2007
Marco Trudel writes:
> Andrew Haley wrote:
> > Marco Trudel writes:
> > > Maybe a stupid question, but how can this loop in
> > > sysdep/i386/backtrace.h ever end:
> > >
> > > register _Jv_uintptr_t *_ebp __asm__ ("ebp");
> > > _Jv_uintptr_t rfp;
> > > for (rfp = *_ebp; rfp; rfp = *(_Jv_uintptr_t *)rfp)
> > > {
> > > // only read access for rfp
> > > }
> > >
> > > Maybe because "*(_Jv_uintptr_t *)rfp" is changing it, but I can't see how...
> >
> > It looks to me like it's walking down a linked list until it hits NULL.
>
> Yeah, but where happens the down-walking? In my opinion we do
> always-the-same-value-walking...
What, in your opinion, does
rfp = *(_Jv_uintptr_t *)rfp;
do?
Andrew.
More information about the Java
mailing list