Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Elena Zannoni <ezannoni@redhat.com>
To: Roland McGrath <roland@redhat.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: unwind support for Linux 2.6 vsyscall DSO
Date: Mon, 06 Oct 2003 19:31:00 -0000	[thread overview]
Message-ID: <16257.50596.85774.226265@localhost.redhat.com> (raw)
In-Reply-To: <200310030827.h938RsrS019019@magilla.sf.frob.com>

Roland McGrath writes:
 > In the past (during this spring and summer) there were some discussions
 > about the need to find unwind info in the vsyscall DSO image implicitly
 > loaded in processes on Linux 2.5/2.6 on some platforms.  I honestly don't
 > recall which mailing lists this was on.  If people are not clear on the
 > issues, I can try to dig up the various summaries of the details I have
 > posted before.  This was tabled for a while when I had other priorities
 > since it didn't turn out to be an issue with any kernel version used by
 > Red Hat production systems.
 > 
 > Now Linux 2.6 is getting firmed up, and it's time to revisit this.  On
 > Linux 2.6 kernels, backtraces from programs stopped in system calls do not
 > work using current glibc on x86 and AMD64 machines.  The same issue exists
 > on IA64 in Linux 2.6, and glibc will before long make use of the feature so
 > that system call backtraces need the same solutions for IA64.
 > 
 > My changes to export the auxv information in core dumps and /proc are now
 > making their way into Linux 2.6, and this gives us the tools we need to
 > solve the problem in gdb.

Ok, reading the thread, I see that you are running pretty much into
the same problems I am running into for PIE support.  What kind of
information is exacty exported into the auxv file?  I am wondering if
you also have the entry point of the program there (AT_ENTRY, looking
at the Solaris auxv.h), because if so it may change my current way of
looking at PIE, where I am taking the info from the /proc/pid/map
file, which is not saved in the core file, I think, while auxv is.

Anyway, this issue aside, there is a target method in gdb to process
the various entries in the map file. I think it would be appropriate
to translate that into something similar for reading the auxv
file. Have a look at target_find_memory_regions. It is defined for
linux in linux-proc.c, and for Solaris in procfs.c, and for fbsd as
well. It is just an iterator over the entries in the map file, but you
get the general idea. There is a bug in there as it is not defined
properly for the core target, while in this case it obviously should
be. This way it could be easily extended for Solaris, etc too, some
day.

For the core file case, look at
gcore.c:objfile_find_memory_regions(). This is the one that fiddles
with remote/core cases. You are in an analogous situation here with
reading from bfd instead of /proc.

Of course, the target_find_memory_regions() function is called only by
the gcore command, which is quite different from what you need to do.

I agree that treating this new information as much as possible as a
shared library will make our life easier, because all the checks are
done in the right spots already. I have some solib debug code that
Kevin approved for mainline, I'll commit it now, if that can be of
help in seeing what happens when shlibs are loaded.

elena


  parent reply	other threads:[~2003-10-06 19:31 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 [this message]
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
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=16257.50596.85774.226265@localhost.redhat.com \
    --to=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