This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
RE: regarding transparent data ranges (in tracepoint support)
- From: "Ramana Radhakrishnan" <ramana dot radhakrishnan at codito dot com>
- To: "Newman, Mark (N-Superior Technical Resource Inc)" <mark dot newman at lmco dot com>
- Cc: "Daniel Jacobowitz" <drow at mvista dot com>, "ankit thukral" <ankit_plug at yahoo dot com>, "Jim Blandy" <jimb at redhat dot com>, gdb at sources dot redhat dot com
- Date: Sat, 29 Nov 2003 12:36:09 +0530 (IST)
- Subject: RE: regarding transparent data ranges (in tracepoint support)
- Reply-to: ramana dot radhakrishnan at codito dot com
Hi Mark,
We had a similar problem and we added a hack to put in an internal
breakpoint at _fini and not at exit so that the program halts there. The
problem however is that if the debuggee exits on a SEGV for eg. the
transparent data regions cannot be queried anyways.
So the cleanest option would be to add support for PTRACE_EVENT_EXIT but
thats not available in the 2.4 series of kernels which are the ones on
which we are also working.
I am travelling for the next week and hence can't make a release without
the copyright assignment on which our firm's lawyers are working on. So
will try and make a release sometime next week after the copyright
assignment is done.
cheers
Ramana
> Could you be specific as to what kernel/file this is in?
>
> I am using 2.4.18 and can't find it in kernel/ptrace.c .
>
> Mark Newman
>
>> -----Original Message-----
>> From: Daniel Jacobowitz [mailto:drow@mvista.com]
>> Sent: Wednesday, November 19, 2003 3:22 PM
>> To: Newman, Mark (N-Superior Technical Resource Inc)
>> Cc: ankit thukral; Jim Blandy; gdb@sources.redhat.com
>> Subject: Re: regarding transparent data ranges (in tracepoint support)
>>
>>
>> On Wed, Nov 19, 2003 at 02:50:29PM -0500, Newman, Mark
>> (N-Superior Technical Resource Inc) wrote:
>> > Sorry about the tunnel vision. When the SUT exits we loose
>> all of the
>> > tracepoint data in target memory. Stopping that from
>> happening is the
>> > next thing on my list after I finish making interrupt work.
>> After the
>> > program finishes it should not exit without an ok from the engineer.
>> >
>> > So Ankit if that is what you are looking to do I agree completely.
>> > However can't gdbserver do something more like the restart
>> that occurs
>> > with a "w" or "x" status after the putpkt in the case statement in
>> > server.c
>>
>> For recent Linux kernels see PTRACE_EVENT_EXIT.
>>
>> In general, however, there's no easy way to prevent it from exiting
>> without that.
>>
>> >
>> > Mark
>> >
>> > > -----Original Message-----
>> > > From: Daniel Jacobowitz [mailto:drow@mvista.com]
>> > > Sent: Wednesday, November 19, 2003 2:39 PM
>> > > To: Newman, Mark (N-Superior Technical Resource Inc)
>> > > Cc: ankit thukral; Jim Blandy; gdb@sources.redhat.com
>> > > Subject: Re: regarding transparent data ranges (in
>> tracepoint support)
>> > >
>> > >
>> > > On Wed, Nov 19, 2003 at 02:34:49PM -0500, Newman, Mark
>> > > (N-Superior Technical Resource Inc) wrote:
>> > > > Guys - again please excuse my ignorance but
>> > > >
>> > > > I was assuming that transparent memory would either be
>> > > >
>> > > > In ROM
>> > > > In a write protected page
>> > > > In an unprotected page (for those systems without
>> memory protection)
>> > > > Possibly swapped out to the disk (for those system with a disk)
>> > > >
>> > > > However definitely readable by "read_inferior_memory".
>> > > >
>> > > > Why would the data not be loaded into some form of memory?
>> > > > What kind of data are we talking about?
>> > >
>> > > Ankit is talking about reading the transparant tracepoint
>> data after
>> > > the program has exited - when its memory isn't there any more.
>> > >
>> > > >
>> > > > Mark Newman
>> > > >
>> > > > > -----Original Message-----
>> > > > > From: gdb-owner@sources.redhat.com
>> > > > > [mailto:gdb-owner@sources.redhat.com]On Behalf Of Daniel
>> > > Jacobowitz
>> > > > > Sent: Wednesday, November 19, 2003 1:56 PM
>> > > > > To: ankit thukral
>> > > > > Cc: Jim Blandy; gdb@sources.redhat.com
>> > > > > Subject: Re: regarding transparent data ranges (in
>> > > tracepoint support)
>> > > > >
>> > > > >
>> > > > > On Wed, Nov 19, 2003 at 08:25:37AM -0800, ankit thukral wrote:
>> > > > > >
>> > > > > > --- Jim Blandy <jimb@redhat.com> wrote:
>> > > > > > >
>> > > > > > > ankit thukral <ankit_plug@yahoo.com> writes:
>> > > > > > >
>> > > > > > > > hi all,
>> > > > > > > > i read about the transparent data ranges and
>> > > > > > > > learned that data in these ranges are not supposed
>> > > > > > > to
>> > > > > > > > be collected by the remote stub since they belong
>> > > > > > > to
>> > > > > > > > read-only segment of the debuggee.my problem is :
>> > > > > > > a
>> > > > > > > > TSTART would start the debuggee and it may so
>> > > > > > > happen
>> > > > > > > > that the debuggee finishes executing.at this
>> > > > > > > point,if
>> > > > > > > > the GDB requests for some data in the transparent
>> > > > > > > data
>> > > > > > > > range,then how can the remote stub provide it with
>> > > > > > > one
>> > > > > > > > since the debuggee has exited ?
>> > > > > > >
>> > > > > > > If the target is a gdbserver, then it would need to
>> > > > > > > read the bytes
>> > > > > > > from the executable file. This is easy to do with
>> > > > > > > BFD, but if I
>> > > > > > > remember right, gdbserver doesn't use BFD at the
>> > > > > > > moment; not sure how
>> > > > > > > to get around that.
>> > > > > > >
>> > > > > > > If the target is an embedded system, then presumably
>> > > > > > > the transparent
>> > > > > > > data ranges correspond to ROM regions, so the data
>> > > > > > > is still there.
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > > how about setting a (internal) breakpoint in the
>> > > > > > debuggee which would prevent it from exiting even
>> > > > > > though it has finished executing main(),and then
>> > > > > > entertain GDB requests for the transparent (or
>> > > > > > read-only) memory regions by reading from the memory
>> > > > > > of the debuggee???
>> > > > >
>> > > > > That would work (but be wasteful). At least on Linux,
>> > > you could read
>> > > > > /proc/pid/maps to find what ranges correspond to where in
>> > > what file,
>> > > > > and save that information.
>> > > > >
>> > > > > --
>> > > > > Daniel Jacobowitz
>> > > > > MontaVista Software Debian
>> > > GNU/Linux Developer
>> > > > >
>> > > >
>> > >
>> > > --
>> > > Daniel Jacobowitz
>> > > MontaVista Software Debian
>> GNU/Linux Developer
>> > >
>> >
>>
>> --
>> Daniel Jacobowitz
>> MontaVista Software Debian GNU/Linux Developer
>>
>
----
Ramana Radhakrishnan
Codito Technologies