This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: sysdep/i386/backtrace.h infinite loop?


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]