From: Andrew Cagney <ac131313@redhat.com>
To: Roland McGrath <roland@redhat.com>, Elena Zannoni <ezannoni@redhat.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: unwind support for Linux 2.6 vsyscall DSO
Date: Tue, 07 Oct 2003 03:53:00 -0000 [thread overview]
Message-ID: <3F8238B0.50409@redhat.com> (raw)
In-Reply-To: <200310070013.h970Ddai032605@magilla.sf.frob.com>
>> > There should be an iterator over the entries in the /proc/pid/auxv
>> > file with a callback that processes each entry. So that the iterator
>> > could be used not just for finding the AT_SYSINFO_EHDR entry.
>
>>
>> Ok, an iterator interface is fine with me, just marginally less efficient
>> than the searcher when only one tag is actually used (and more efficient if
>> many tags are used). (I had not proposed any function that would be useful
>> solely for AT_SYSINFO_EHDR, though that was one of Jim's early
>> suggestions.) If others agree this is the right interface for a target_ops
>> addition, I will write that patch.
>
>
> Actually, I think this is not as useful an interface as one that fetches
> the whole block for you. There is another use for this call besides the
> Linux-specific AT_SYSINFO_EHDR check: gcore. We want gcore to produce
> NT_AUXV notes in core dumps so that those core dumps can be used to extract
> whatever AT_* information we could extract from core dumps written by a kernel.
>
> This is easy to add either way, but is cleaner, simpler, and more efficient
> if it just writes the whole block uninterpreted than if it dissects and
> reassembles it.
For this to work, there will need to be mechanisms that:
- unpack an architecture's auxv
- pack an architecture's auxv
- transport the auxv from the target, to GDB.
The problem then is how to arrange these mechanisms so that they
integrate well enough to work both native and cross (i386 on amd64 is
considered a cross), be consistent with other gdb mechanisms and direction:
target vector xfers via an iterator:
- the low native code would be using the unpack method
- the PIE and VSYSCALL code would be very simple
- the CORE file code would need the pack method
- the low remote could on-demand read the data
target vector xfers raw data:
- the low native code would be simple
- the PIE and VSYSCALL code would need to use the unpack method
- the CORE file code would just write out the data
- the low remote code would, either be locked into transfering raw
bytes, or be forced to use the pack method
Also, ...
In my way earlier post, I also suggested "remote I/O' - a generic
mechanism for accessing arbitrary target data. Looking through the
target vectore I see there is already "to_query()". The original intent
of to_query was to handle exactly this sort of problem - pushing data
anonymously through the target vector. The auxv fetch, with a large
bit of a struggle, could even be implemented using to_query.
So?
I've strong reservations towards adding redundant functionality to the
target vector. However, I also note that the existing to_query method
isn't sufficient.
So I can see either an iterator, or an update to to_query being added to
the target vector. Given that the iterator is a given, that might be
the safest starting point - let the target maintainer go through and
clean up to_query.
thoughts,
Andrew
next prev parent reply other threads:[~2003-10-07 3:53 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-03 8:27 Roland McGrath
2003-10-03 23:44 ` Jim Blandy
2003-10-04 0:10 ` Roland McGrath
2003-10-04 7:28 ` Jim Blandy
2003-10-04 20:27 ` Roland McGrath
2003-10-04 21:14 ` Daniel Jacobowitz
2003-10-04 22:01 ` Roland McGrath
2003-10-04 23:28 ` Daniel Jacobowitz
2003-10-06 17:14 ` Jim Blandy
2003-10-06 19:35 ` Elena Zannoni
2003-10-06 19:31 ` Elena Zannoni
2003-10-06 20:24 ` Roland McGrath
2003-10-06 21:48 ` Elena Zannoni
2003-10-06 23:59 ` Roland McGrath
2003-10-07 0:13 ` Roland McGrath
2003-10-07 2:30 ` Elena Zannoni
2003-10-07 2:40 ` Roland McGrath
2003-10-07 2:47 ` Roland McGrath
2003-10-07 3:53 ` Andrew Cagney [this message]
2003-10-07 4:07 ` Daniel Jacobowitz
2003-10-07 4:17 ` Andrew Cagney
2003-10-07 4:28 ` Roland McGrath
2003-10-08 0:02 ` Michael Snyder
2003-10-08 0:46 ` Roland McGrath
2003-10-08 18:27 ` Andrew Cagney
2003-10-08 21:00 ` Andrew Cagney
2003-10-08 21:47 ` Roland McGrath
2003-10-08 23:25 ` Elena Zannoni
2003-10-09 0:45 ` Roland McGrath
2003-10-08 23:10 ` Elena Zannoni
2003-10-09 0:50 ` Roland McGrath
2003-10-08 23:53 ` Daniel Jacobowitz
2003-10-07 0:17 ` Daniel Jacobowitz
2003-10-07 23:54 ` Michael Snyder
2003-10-08 0:07 ` Roland McGrath
2003-10-07 4:43 ` Jim Blandy
2003-10-07 4:45 ` Roland McGrath
2003-10-09 19:58 ` Kevin Buettner
2003-10-09 20:02 ` Daniel Jacobowitz
2003-10-09 20:10 ` Jim Blandy
2003-10-09 22:20 ` Roland McGrath
2003-10-09 22:49 ` Kevin Buettner
2003-10-10 0:12 ` Michael Snyder
2003-10-11 1:44 ` Roland McGrath
2003-10-09 23:04 ` Kevin Buettner
2003-10-11 1:47 ` Roland McGrath
2003-10-15 4:33 ` Kevin Buettner
2003-10-09 20:21 ` Kevin Buettner
2003-10-09 20:23 ` Daniel Jacobowitz
2003-10-09 20:46 ` Kevin Buettner
2003-10-09 22:32 ` Roland McGrath
2003-10-09 22:46 ` Kevin Buettner
2003-10-11 1:40 ` Roland McGrath
2003-10-09 22:07 ` Roland McGrath
2003-10-09 22:32 ` Kevin Buettner
2003-10-07 3:33 Roland McGrath
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3F8238B0.50409@redhat.com \
--to=ac131313@redhat.com \
--cc=ezannoni@redhat.com \
--cc=gdb-patches@sources.redhat.com \
--cc=roland@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox