This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
RE: tracepoint frames
- From: "Newman, Mark (N-Superior Technical Resource Inc)" <mark dot newman at lmco dot com>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: Jim Blandy <jimb at redhat dot com>, gdb at sources dot redhat dot com
- Date: Mon, 06 Oct 2003 09:59:46 -0400
- Subject: RE: tracepoint frames
First - thanks for the response
-----Original Message-----
From: Daniel Jacobowitz [mailto:drow@mvista.com]
Sent: Monday, October 06, 2003 9:51 AM
To: Newman, Mark (N-Superior Technical Resource Inc)
Cc: Jim Blandy; gdb@sources.redhat.com
Subject: Re: tracepoint frames
On Mon, Oct 06, 2003 at 09:03:03AM -0400, Newman, Mark (N-Superior
Technical Resource Inc) wrote:
>
> Jim -
>
> When a trace point is hit some data is collected - certainly at a
> minimum the data specified by the collect statements. However from
some
> earlier conversations and a converstaion with Ramana that additional
> information should be collected. Michael indicated that he collected
a
> "frame" in addition to the registers, data items, etc specified in the
> collect commands.
>
> Is it necessary to collect enough information to support say a
> "backtrace" command (after a tfind)?
Well, it would be nice but it's not generally possible. The backtrace
logic is pretty hairy and target-dependent; the stub has no way to find
out what will be necessary.
If this is necessary I was thinking that the sub could collect the whole
stack. However this seems to be prohibitively expensive in both size
and speed.
> I have found that simple "print" commands will work and that "printf"
> commands will not work unless one sets up the complete environment. Is
> there a requirement or a preference on the part of the community as to
> what needs to be available when analyzing a tracepoint?
Probably if any additional data ought to be collected that shoud be
implemented in the GDB client, not silently by the stub.
I thought that the data was collected only in the stub when a tracepoint
is hit. GDB never sees the data until a "g" or an "m" protocol message
arrives at the stub.
>
> Mark
>
>
> -----Original Message-----
> From: Jim Blandy [mailto:jimb@redhat.com]
> Sent: Friday, October 03, 2003 7:57 PM
> To: Newman, Mark (N-Superior Technical Resource Inc)
> Cc: gdb@sources.redhat.com
> Subject: Re: tracepoint frames
>
>
>
> "Newman, Mark (N-Superior Technical Resource Inc)"
> <mark.newman@lmco.com> writes:
> > The question has come up as to what needs to be collected when a
> > tracepoint is hit. I understand that a "frame" needs to be
> > collected. Can someone tell me what a "frame" is. Is it a stack
> > frame, a trace frame, or what?
>
> Well, we do have trace frames; a trace frame is the clump of
> information collected for a single tracepoint hit. It includes
> registers, and assorted regions of memory.
>
> You can also ask a trace frame to collect things like local variables,
> arguments, or registers. But all that gets parsed by the code in
> tracepoint.c and turned into a 'struct collection_list', that's just a
> set of registers, memory regions, and agent expressions to collect;
> it's all parsed for you. So at that level, there are no frames any
> more --- everything is explicit
>
> But I don't feel like I've answered the question. In what context did
> it come up?
>
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer