variable objects and registers

Vladimir Prus ghost@cs.msu.su
Sat Dec 30 20:41:00 GMT 2006


On Saturday 30 December 2006 23:26, Daniel Jacobowitz wrote:
> On Thu, Dec 21, 2006 at 02:29:44PM +1300, Nick Roberts wrote:
> > I see now that Insight has two commands:
> > 
> >     /* This implements the tcl command gdb_get_blocks
> >      *
> >      * Returns the start and end addresses for all blocks in
> >      * the selected frame.
> 
> >     /* This implements the tcl command gdb_block_vars.
> >      *
> >      * Returns all variables valid in the specified block.
> 
> > gdb_block_vars only gets called if gdb_get_blocks finds a new block which
> > then finds any variabes local to it.  That way new variable objects can be
> > added (and old ones deleted if a block has disappeared) while keeping
> > the variable objects which are still in scope.  I think we should implement
> > these functions in MI (perhaps Apple already have).
> 
> Just a note: whatever approach we end up with for this problem, let's
> not use start and end addresses to identify the blocks.  In modern
> compilers a block is not a contiguous range of PCs; they can overlap.

I kinda assumed we'd use 'struct block *' everywhere. We'd need to be
able to check if a PC is inside a block and for that we'd need the
comparison with block start and end addresses. Or there's some other
way to check if PC is in block?

- Volodya



More information about the Gdb-patches mailing list