This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Checking if addess is on stack?
- From: Vladimir Prus <ghost at cs dot msu dot su>
- To: Eli Zaretskii <eliz at gnu dot org>
- Cc: gdb at sources dot redhat dot com
- Date: Thu, 20 Apr 2006 14:26:58 +0400
- Subject: Re: Checking if addess is on stack?
- References: <e27hvh$a2l$1@sea.gmane.org> <uejzswnqq.fsf@gnu.org>
On Thursday 20 April 2006 14:22, Eli Zaretskii wrote:
> > From: Vladimir Prus <ghost@cs.msu.su>
> > Date: Thu, 20 Apr 2006 12:49:53 +0400
> >
> > in order to improve watchpoints handling in KDevelop, I need to figure
> > out if a given address is part of current frame's stack. Is there any
> > command to produce that information? I guess I can look at frame base
> > address and check if my address is "close" to that, but it's a bit
> > unreliable.
> >
> > For reference, the watchpoint changes for KDevelop are outlined at:
> >
> > http://lists.kde.org/?l=kdevelop-devel&m=114552206721831&w=2
>
> I think one way to solve the problems you describe in that URL is to
> set a temporary breakpoint whose commands set the watchpoint:
>
> tb do_that
> commands
>
> > watch ptr->i
> > continue
> > end
>
> (and similarly for block-local variables: put a breakpoint on the
> block's first line). If you want to keep the watchpoints between
> sessions, record the temporary breakpoints and reinsert them when the
> session starts.
>
> Would this do what you want?
I'm not sure that's exactly what I need. This way, watchpoint will be
automatically inserted when I enter 'do_that', but as soon as I leave
'do_that', gdb will remove wathchpoint because 'ptr' has gone out of scope.
This will prevent me from catching accesses to ptr->i made outside of the
function where 'ptr' is valid. Am I missing something?
Thanks,
Volodya