This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB 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: SIGSEGV on gdb 6.7*


[Please reply to the list, thanks!]

On Mon, Feb 04, 2008 at 09:35:07PM +0000, Greg Law wrote:
> When a register is examined, we (eventually) get to  
> frame_register_unwind.  This does:
>
> frame->unwind->prev_register (frame->next, &frame->prologue_cache, regnum,
> 				optimizedp, lvalp, addrp, realnump, bufferp);
>
> which is actually a function pointer to (on plain old x86 Linux) 
> sentinel_frame_prev_register, which goes:

Ah yes.  That's the only prologue cache which has any business
accessing a regcache directly, none of the others do.

flushregs should invalidate the frame cache and current/selected
frame.  I have been meaning to fix that for, roughly, ever.  Does
it work better if you do that?

> Yeah, I guess this more important on remote targets over slow
> links, right?  In that case, do we not need to take care from
> registers_changed() to go and invalidate all the pointers to cached 
> registers in the frame structures?  Hmm, although thinking about it now, I 
> guess the frame structures all need
> throwing away/recalculating if the registers have changed anyway?  I can't 
> find what causes that to happen though.

That's the key point :-)

-- 
Daniel Jacobowitz
CodeSourcery


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